PHP array_filter() 函数
说明
array_filter()
函数使用回调函数过滤数组的元素。
下表总结了该函数的技术细节。
返回值: | Returns the filtered array. |
---|---|
变更日志: | PHP 5.6.0 中添加了可选的 flag 参数 |
版本: | PHP 4.0.6+ |
语法
array_filter()
函数的基本语法如下:
array_filter(array, callback, flag);
下面的例子展示了 array_filter()
函数的作用。
<?php
// 定义回调函数
function even($num){
if($num % 2 == 0){
return true;
}
}
// 样本数组
$numbers = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
// 过滤数字数组
$result = array_filter($numbers, "even");
print_r($result);
?>
参数
array_filter()
函数接受以下参数。
参数 | 说明 |
---|---|
array | 必填。 指定要过滤的数组。 |
callback | 可选。 指定回调函数的名称。 |
flag |
可选。 指定将哪些参数发送到回调:
默认为
0 ,它将值作为唯一参数传递给回调函数。 |
更多示例
这里有更多示例展示了 array_filter()
函数的实际工作原理:
在以下示例中,此函数使用 flag 参数从 numbers 数组中返回键大于字符"b"的所有值:
<?php
// 样本数组
$numbers = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
// 使用键过滤数字数组
$result = array_filter($numbers, function($key){
return $key > "b";
}, ARRAY_FILTER_USE_KEY);
print_r($result);
?>
在以下示例中,此函数返回其键大于"b"的偶数值。
<?php
// 样本数组
$numbers = array("a"=>1, "b"=>2, "c"=>3, "d"=>4, "e"=>5);
// 使用键和值过滤数字数组
$result = array_filter($numbers, function($value, $key){
return $key > "b" && !($value & 1);
}, ARRAY_FILTER_USE_BOTH);
print_r($result);
?>
Advertisements