array_filter没有回调做什么?

时间:2014-10-19 21:55:32

标签: php arrays

我刚看到这段代码:

array_filter( array_map('intval', $array) );

似乎返回$ array转换为int的所有条目,其中数字为> 0

但是我在手册页上看不到这是定义的。如果回调函数的计算结果为true,则应该返回数组值。但是这里没有定义回调函数。

令人困惑的是,手册页上的回调函数是可选的:http://php.net/manual/en/function.array-filter.php

2 个答案:

答案 0 :(得分:17)

从数组中删除空值或等效值:

示例#2 array_filter()没有回调

   $entry = array(
                 0 => 'foo',
                 1 => false,
                 2 => -1,
                 3 => null,
                 4 => ''
              );

    print_r(array_filter($entry));

<强>结果

Array
(
    [0] => foo
    [2] => -1
)

请参阅手册中的original documentation

答案 1 :(得分:8)

如果您在链接的页面上稍微阅读了一下,您会发现,&#34;如果没有提供回调,则将删除所有数组条目等于FALSE(请参阅转换为布尔值)。&# 34;