ฟังก์ชัน array_filter
ฟังก์ชัน array_filter กรองอาร์เรย์
ด้วยฟังก์ชันที่กำหนด พารามิเตอร์ของฟังก์ชัน
จะได้รับองค์ประกอบของอาร์เรย์ตามลำดับ
และหากฟังก์ชันส่งกลับค่า
true สำหรับองค์ประกอบนั้น - องค์ประกอบจะยังคงอยู่ในอาร์เรย์ แต่หากส่งกลับ
false - จะถูกลบออก จากอาร์เรย์จะเหลือเพียง
องค์ประกอบที่ฟังก์ชัน
ส่งกลับค่า true เท่านั้น
หากอาร์เรย์ต้นทางเป็น associative array คีย์ของมันจะถูกเก็บรักษาไว้
ไวยากรณ์
array_filter(array $array, ?callable $callback = null, int $mode = 0): array
ตัวอย่าง
มาทิ้งไว้ในอาร์เรย์เฉพาะองค์ประกอบที่เป็นบวก กัน:
<?php
function func($num)
{
if ($num >= 0) {
return true;
} else {
return false;
}
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
ผลลัพธ์จากการรันโค้ด:
[1, 2, 3]
ตัวอย่าง
ลดรูปเงื่อนไข:
<?php
function func($num)
{
return $num >= 0;
}
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, 'func');
var_dump($res);
?>
ผลลัพธ์จากการรันโค้ด:
[1, 2, 3]
ตัวอย่าง
เปลี่ยนไปใช้ฟังก์ชันไม่มีชื่อ (anonymous function):
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, function($num) {
return $num >= 0;
});
var_dump($res);
?>
ผลลัพธ์จากการรันโค้ด:
[1, 2, 3]
ตัวอย่าง
เปลี่ยนไปใช้ฟังก์ชันลูกศร (arrow function):
<?php
$arr = [1, -1, 2, -2, 3, -3];
$res = array_filter($arr, fn($num) => $num >= 0);
var_dump($res);
?>
ผลลัพธ์จากการรันโค้ด:
[1, 2, 3]
ดูเพิ่มเติม
-
ฟังก์ชัน
array_map,
ซึ่งนำฟังก์ชันไปใช้กับองค์ประกอบของอาร์เรย์ -
ฟังก์ชัน
array_walk,
ซึ่งเรียกฟังก์ชันสำหรับองค์ประกอบของอาร์เรย์ -
ฟังก์ชัน
array_walk_recursive,
ซึ่งเรียกฟังก์ชันสำหรับองค์ประกอบของอาร์เรย์แบบเรียกซ้ำ -
ฟังก์ชัน
array_reduce,
ซึ่งยุบอาร์เรย์