array_filter()
函式用於過濾陣列中的元素,並返回一個新的陣列,該陣列只保留滿足指定條件的元素。
用法:
array_filter(array $array, callable $callback = null, int $flag = 0): array
引數:
$array
:必需,要過濾的陣列。$callback
:可選,指定一個回撥函式來過濾陣列中的元素。如果未指定回撥函式,則會刪除值為false
,null
,''
,0
或空陣列的元素。$flag
:可選,指定使用哪種過濾模式。預設為0
,表示不使用任何額外的過濾模式。可選的過濾模式有:ARRAY_FILTER_USE_KEY
:使用回撥函式對陣列的鍵進行過濾。ARRAY_FILTER_USE_BOTH
:使用回撥函式對陣列的鍵和值進行過濾。
示例 1:
$numbers = [1, 2, 3, 4, 5];
$filtered = array_filter($numbers, function($value) {
return $value % 2 == 0; // 保留偶數
});
print_r($filtered);
輸出:
Array
(
[1] => 2
[3] => 4
)
示例 2:
$students = [
['name' => 'John', 'age' => 20],
['name' => 'Jane', 'age' => 18],
['name' => 'Tom', 'age' => 22],
];
$filtered = array_filter($students, function($student) {
return $student['age'] >= 20; // 保留年齡大於等於 20 的學生
});
print_r($filtered);
輸出:
Array
(
[2] => Array
(
[name] => Tom
[age] => 22
)
)