【问题标题】:Multiplying array indexes in PHP with array_reduce将 PHP 中的数组索引与 array_reduce 相乘
【发布时间】:2015-08-14 10:50:32
【问题描述】:

为什么array_reduce() 方法在加法和乘法时的工作方式不同?当我添加下面的数组值时,代码会产生预期的结果:15。但是当我相乘时,它返回:0。相同的代码...唯一的区别是+符号切换为*符号。

  function sum($arr){
        print_r(array_reduce($arr, function($a, $b){return $a + $b;}));
    }

    function multiply($arr){
        print_r(array_reduce($arr, function($a, $b){return $a * $b;}));
    }

    sum(array(1, 2, 3, 4, 5)); // 15
    multiply(array(1, 2, 3, 4, 5)); // 0

【问题讨论】:

    标签: php array-reduce


    【解决方案1】:

    根据文档,您可能想尝试

    function multiply($arr){
            print_r(array_reduce($arr, function($a, $b){return $a * $b;},1));
    }
    

    这是来自this讨论的引述:

    回调的第一个参数是一个累加器,在其中有效地组装了正在进行的结果。如果您提供 $initial 值,则累加器以该值开始,否则以 null 开始。

    【讨论】:

    猜你喜欢
    • 2020-05-26
    • 2017-12-16
    • 2017-07-17
    • 2019-10-12
    • 2016-09-01
    • 2017-05-20
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多