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
)
)