การกรอง (filter) สมาชิกในอะเรย์ คือการส่ง element ในแต่ละตัวของอะเรย์ไปตรวจสอบค่าตามที่ต้องการ ถ้าคืนค่ากลับมาเป็น true ก็จะคงสมาชิกตัวนั้น ๆ อยู่ แต่ถ้าคืนค่ากลับมาเป็น false มันก็จะลบสมาชิกนั้น ๆ ทิ้งไป
$filtered = array_filter(array, callback); โดยที่ $filtered คือ ตัวแปรอะเรย์ที่เก็บผลลัพธ์จากการกรองอะเรย์แล้ว array คือ ตัวแปรอะเรย์ที่ต้องการนำไปกรองค่า โดยมันจะส่ง element ที่ละตัวจนครบไปยังฟังก์ชัน callback callback คือ ฟังก์ชันที่ต้องการใช้ในการตรวจสอบค่าเพื่อกรองข้อมูลในอะเรย์
<?php
function is_odd($element) {
// มันจะคืนค่าเป็น 0 หรือ 1 ซึ่งแทนค่า true และ false
return $element % 2;
}
$numbers = array(9, 23, 24, 27);
$odds = array_filter($numbers, 'is_odd');
// $odds = array(0 => 9, 1 => 23, 3 => 27);
?>
ในกรณีที่เป็นอะเรย์หลายมิติ
<?php
function is_young($element) {
return ($element['age'] < 30);
}
$persons = array(
array(
"name" => "Genetic",
"age" => 21);
array(
"name" => "Foo",
"age" => 30);
array(
"name" => "Bar",
"age" => 34);
array(
"name" => "Flob",
"age" => 12)
);
$youngs = array_filter($persons, 'is_young');
print_r($youngs);
?>
# ผลลัพธ์ Array ( [0] => Array( [name] => Genetic [age] => 21 ) [3] => Array( [name] => Flob [age] => 12 ) )
ผู้สนับสนุน