php - PHP 的 array_reduce 整数第三个参数的解决方法

标签 php array-reduce

对于 someother原因,array_reduce PHP 中的函数只接受整数作为它的第三个参数。这第三个参数用作整个缩减过程的起点:

function int_reduc($return, $extra) {
    return $return + $extra;
}

$arr = array(10, 20, 30, 40);
echo array_reduce($arr, 'int_reduc', 0); //Will output 100, which is 0 + 10 + 20 + 30 + 40

function str_reduc($return, $extra) {
    return $return .= ', ' . $extra;
}

$arr = array('Two', 'Three', 'Four');
echo array_reduce($arr, 'str_reduc', 'One'); //Will output 0, Two, Three, Four

在第二次调用中,'One' 被转换为它的整数值,即 0,然后被使用。

为什么 PHP 会这样做!?

欢迎任何解决方法...

最佳答案

如果您不传递 $initial 值,PHP 会假定它是 NULL 并将传递 NULL 给您的函数。因此,一种可能的解决方法是检查代码中的 NULL:

function wrapper($a, $b) {
    if ($a === null) {
        $a = "One";
    }
    return str_reduc($a, $b);
}

$arr = array('Two', 'Three', 'Four');
echo array_reduce($arr, 'wrapper');

关于php - PHP 的 array_reduce 整数第三个参数的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1571997/

相关文章:

php - 将脚本函数卸载到响应后 : methods and best-practices?

php - 更新 while 循环到 mysqli

php - 处理cURL和其他POST类型的请求

php - 什么时候使用 filter_input() 与 filter_var()?

php - 如何检查多维数组中的所有值是否为空

使用 array.reduce() 获取对象数组中对象出现次数的 JavaScript 代码

php - 使用 PHP 和 MySQL 的页面浏览量计数器?

arrays - 有没有办法在 Swift 中打破数组的 reduce 函数?

php - 如何在回调函数中包含变量?