没有回调array_filter有什么作用?
我刚刚遇到这个代码:
array_filter(array_map('intval', $array));
它似乎返回$array转换为int的所有条目,其中数字>0。
但是,我无法在手册页上看到这是定义的。如果回调函数的计算结果为 true,则应返回数组值。但这里没有定义任何回调函数。
令人困惑的另一点是,回调函数在手册页上是可选的。
我刚刚遇到这个代码:
array_filter(array_map('intval', $array));
它似乎返回$array转换为int的所有条目,其中数字>0。
但是,我无法在手册页上看到这是定义的。如果回调函数的计算结果为 true,则应返回数组值。但这里没有定义任何回调函数。
令人困惑的另一点是,回调函数在手册页上是可选的。
从数组中删除空值或等效值:
$entry = array(
0 => 'foo',
1 => false,
2 => -1,
3 => null,
4 => '',
5 => 0
);
print_r(array_filter($entry));
结果
Array
(
[0] => foo
[2] => -1
)
请参阅手册中的原始文档:示例 #2 array_filter() 不带回调
如果你在链接到的页面上进一步阅读,你会发现,“如果没有提供回调,所有数组等于FALSE的条目(请参阅转换为布尔值)都将被删除。