ทำความรู้จักกับฟังก์ชัน array_filter ของ PHP

อีกหนึ่งฟังก์ชันที่อยากแนะนำให้ใช้ใน 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 ครับ