StepCoding

การเรียกใช้ฟังก์ชันกับสมาชิกในอะเรย์ทุกตัว

อ่าน [277] หมวดหมู่: Array

PHP ได้เตรียมฟังก์ชัน array_walk() สำหรับเรียกใช้ฟังก์ชัน กับสมาชิกในอะเรย์ทุก ๆ ตัว (โดยมันจะส่งสมาชิกไปทีละรอบจนครบจำนวนสมาชิกในอะเรย์)

# รูปแบบ
array_walk(array, function_name);
โดยที่
	array คือ ตัวแปรอะเรย์ที่ต้องการส่งสมาชิกแต่ละตัวไปยังฟังก์ชัน
	function_name คือ ชื่อฟังก์ชันที่จะส่งสมาชิกในอะเรย์เข้าไป

ฟังก์ชัน ที่เราสร้างขึ้นนั้นจะต้องมี parameter 2 ตัว หรืออาจจะ 3 ตัวก็ได้ ซึ่ง parameter ตัวแรกเป็นค่าของ element ตำแหน่งปัจจุบันที่ถูกส่งมา parameter ตัวที่สองเป็น key ของ element ตำแหน่งปัจจุบันที่ถูกส่งมา และ parameter เป็นค่าอื่น ๆ ที่ต้องการส่งไปยังฟังก์ชันนั้น ๆ

<?php
function print_row($value, $key) {
	echo "<tr><td>$value</td><td>$key</td></tr>\n";
}
$person = array('name' => 'Genetic', 'age' => 21, 'position' => 'Admin');
array_walk($person, 'print_row');
?>
# ผลลัพธ์
<tr><td>Genetic</td><td>name</td></tr>
<tr><td>21</td><td>age</td></tr>
<tr><td>Admin</td><td>position</td></tr>

จากตัวอย่างด้านบน จะเห็นว่าเราได้กำหนดให้ ฟังก์ชัน ที่จะส่งสมาชิกของอะเรย์เข้าไป มีพารามิเตอร์ 2 ตัว เท่านั้น ซึ่งมันจะแทนตัวแรกเป็น value ของสมาชิกตำแหน่งนั้น ๆ และแทนตัวที่สองเป็น key ของสมาชิกตำแหน่งนั้น ๆ

ตัวอย่างต่อไปนี้จะเป็นการส่งค่าพารามิเตอร์ตัวที่ 3 โดยจะส่งค่าสีพื้นหลังเข้าไป ดังนี้

<?php
function print_row($value, $key, $color) {
	echo "<tr><td bgcolor=$color>$value</td><td bgcolor=$color>$key</td></tr>\n";
}
$person = array('name' => 'Genetic', 'age' => 21, 'position' => 'Admin');
echo "<table border='1'>";
array_walk($person, 'print_row', 'lightblue');
echo "</table>";
?>
# ผลลัพธ์
<table border='1'>
<tr><td bgcolor=lightblue>Genetic</td><td bgcolor=lightblue>name</td></tr>
<tr><td bgcolor=lightblue>21</td><td bgcolor=lightblue>age</td></tr>
<tr><td bgcolor=lightblue>Admin</td><td bgcolor=lightblue>position</td></tr>
</table>

ผู้สนับสนุน