ดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งานดาวไม่ได้ใช้งาน
 

array_filter() 

ใน php ยังมีฟังก์ชันมากมายให้เราได้ศึกษากันและนำไปใช้กับงานของเรา ฟังก์ชันที่เกี่ยวข้องกับการกรอง filter มีหลากหลาย เช่น stream_filter_register() และ  imagefilter()  ในบทความนี้เราจะมาเรียนรู้เรื่องฟังก์ชัน array_filter น่ะครับ ฟังก์ชันนี้อาจจะมีฟังก์ชันอื่นมาเกี่ยวข้องทำงานร่วมกัน เพื่อกำหนด ฟังก์ชัน callback ให้มันสามารถทำงานได้

array_filter - กรององค์ประกอบ (Elements )ของอาร์เรย์โดยใช้ฟังก์ชั่น callback  ในการวนซ้ำ(Iterates) ทุกๆค่าใน Array จะส่งไปยังฟังก์ชัน callback หากฟังก์ชัน callback ส่งคืนค่าเป็นจริง(true)  ค่าปัจจุบันใน array ก็จะถูกส่งกลับไปยังผลลัพธ์อาร์เรย์ และคีย์ของอาร์เรย์จะถูกเก็บรักษาไว้ 

รูปแบบ Syntex 

array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array

ตัวอย่างโค้ดการใช้งาน

<?php
function odd($var)
{
    // returns whether the input integer is odd
    return($var & 1);
}

function even($var)
{
    // returns whether the input integer is even
    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
    [c] => 3
    [e] => 5
)
Even:
Array
(
    [0] => 6
    [2] => 8
    [4] => 10
    [6] => 12
)

จากผลลัพธ์ จะเห็นได้ว่า ฟังก์ชัน นี้ จะทำการกรองตาม callback ที่เรากำหนดไว้ ในที่นี้จะทำกรองหา element ใน array ว่าตัวไหนคือ odd (เลขคี่) และ Even(เลขคู่)น่ะครับ เมื่อทำการกรองเสร็จแล้ว ก็จะส่งค่าที่กรองได้คืนมาและทำการเป็นในลำดับต่อไป  ในส่วนของฟังก์ชัน callback เราสามารถกำหนดฟังก์ชันอะไรก็ได้ที่เราต้องการจะกรอง หวังว่าบทความนี้จะเป็นประโยชน์และสามารถนำไปประยุกต์ได้น่ะครับ 

 

 

ช่องทางการศึกษาเพิ่มเติมข่าวที่น่าสนใจเกี่ยวกับ : ฟังก์ชัน PHP