将PHP中的数组索引与array_reduce相乘

shm*_*uli 4 php array-reduce

为什么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
Run Code Online (Sandbox Code Playgroud)

Hak*_*kem 5

根据文档,你可能想尝试

function multiply($arr){
        print_r(array_reduce($arr, function($a, $b){return $a * $b;},1));
}
Run Code Online (Sandbox Code Playgroud)

以下是本次讨论的引用:

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