PHP array_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
)
总结
感觉可以将是否保留键值作为一个可选参数传入,因为很多情况下想要重新索引,当然可以用array_values实现,但如果能集成在函数内部就更好了。
作者:皎然CEO
链接:https://www.cnblogs.com/jiaoran/p/12636631.html
个性签名:独学而无友,则孤陋而寡闻。做一个灵魂有趣的人!
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦(っ•̀ω•́)っ✎⁾⁾!