array_filter没有回调做什么?

jdo*_*dog 14 php arrays

我刚看到这段代码:

array_filter( array_map('intval', $array) );
Run Code Online (Sandbox Code Playgroud)

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

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

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

Ras*_*att 19

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

示例#2 array_filter()没有回调

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

    print_r(array_filter($entry));
Run Code Online (Sandbox Code Playgroud)

结果

Array
(
    [0] => foo
    [2] => -1
)
Run Code Online (Sandbox Code Playgroud)

请参阅手册中的原始文档.

  • 批准的建议编辑的优点是什么(不是反问句)? (2认同)

Bob*_*own 9

如果您对您链接阅读一点点进一步在页面上,你会发现,"如果没有回调提供,阵列等于FALSE(见转换为布尔)的所有条目将被删除."