อีกหนึ่งฟังก์ชันที่อยากแนะนำให้ใช้ใน PHP ก็คือฟังก์ชัน array_filter ครับ การทำงานของฟังก์ชันนี้ก็สมชื่อเค้าล่ะครับ เป็นการคัดหรือกรองเอาค่าของ array ที่เราต้องการตามเงื่อนไข ซึ่งเราก็ต้องเขียนฟังก์ชันของเราขึ้นมาเอง ว่าเราต้องการค่าไหนบ้าง เดี๋ยวพูดมากจะงงไปดูวิธีการใช้งานและตัวอย่างการใช้งานกันเลยดีกว่าครับ
รูปแบบการใช้งานฟังก์ชัน array_filter
array array_filter (array $input [,callback $callback ] )
$input เป็นอาร์เรย์ตั้งต้นที่เราต้องการจะกรองครับ
$callback เป็นฟังก์ชันที่เราสร้างขึ้นเพื่อที่จะกรองเอาค่าที่ต้องการครับ
และฟังก์ชันนี้จะส่งค่ากลับมาเป็นอาร์เรย์โดยที่คีย์ของอาร์เรย์จะเหมือนกับอาร์เรย์ตั้งต้น ($input) ถ้าไม่มีการระบุ $callback ฟังก์ชันจะคืนค่า (return) เฉพาะที่มีค่าเท่ากับ TRUE มาให้ครับ
ตัวอย่างการใช้งานครับ
<?php
function odd($var)
{
return($var & 1);
}function even($var)
{
return(!($var & 1));
}$array1 = array(“a”=>1, “b”=>2, “c”=>3, “d”=>4, “e”=>5);
$array2 = array(6, 7, 8, 9, 10, 11, 12);echo “Odd :\n”;
print_r(array_filter($array1, “odd”));
echo “Even:\n”;
print_r(array_filter($array2, “even”));
?>
ผลลัพธ์
Odd : Array ( [a] => 1 => 3 [e] => 5 ) Even: Array ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 )
ตัวอย่างการใช้งานแบบไม่ระบุ $callback
<?php
$entry = array(
0 => ‘foo’,
1 => false,
2 => –1,
3 => null,
4 => ”
);print_r(array_filter($entry));
?>
ผลลัพธ์
Array ( [0] => foo [2] => -1 )
หวังว่าจะเป็นประโยชน์บ้างนะครับ หรือถ้าอ่านแล้วไม่เข้าใจลองเข้าไปศึกษาได้ที่ ฟังก์ชัน array_filter ของ PHP ครับ