PHParray_filter()函数详解
定义
array_filter - ⽤回调函数过滤数组中的元素
描述
array_filter ( array $array [, callable $callback [, int $flag = 0 ]] ) : array
依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
如果没有提供 callback 函数,将删除 array 中所有等值为 FALSE 的元素。
参数 flag 决定callback接收的参数形式:
ARRAY_FILTER_USE_KEY - 接受键名作为的唯⼀参数,整型 1
ARRAY_FILTER_USE_BOTH - 同时接受键名和键值,整型 2
两个系统预定义常量,可通过get_defined_constants查看。
⽰例⼀
<?php
function even($var)
{
// returns whether the input integer is even
return(!($var & 1));
}
$array = array(6, 7, 8, 9, 10, 11, 12);
echo "Even:\n";
print_r(array_filter($array, "even"));
?>
将输出:
Even:
Array
(
[0] => 6
[2] => 8
[4] => 10
[6] => 12
)
⽰例⼆
不使⽤回调函数
<?php
$entry = array(
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => ''
);
print_r(array_filter($entry));
?>
将输出:
Array
(
[0] => foo
[2] => -1
)
总结filter过滤对象数组
感觉可以将是否保留键值作为⼀个可选参数传⼊,因为很多情况下想要重新索引,当然可以⽤array_values实现,但如果能集成在函数内部
就更好了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。