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

将PHP中的数组索引与array_reduce相乘,php,array-reduce,Php,Array Reduce,为什么在加法和乘法时,array\u reduce()方法的工作方式不同?当我添加下面的数组值时,代码生成预期结果:15。但当我乘法时,它返回:0。相同的代码。。。唯一的区别是+符号切换为*符号 function sum($arr){ print_r(array_reduce($arr, function($a, $b){return $a + $b;})); } function multiply($arr){ print_r(array_

为什么在加法和乘法时,
array\u 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

根据文件,你可能想试试

function multiply($arr){
        print_r(array_reduce($arr, function($a, $b){return $a * $b;},1));
}
以下是讨论中的一段话:

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


比我快20秒Shere的文档链接:@shmuli因为你需要设置一个初始值,第一轮中的$a似乎是0,所以所有东西都乘以0@shmuli是关于“为什么”的详细讨论,Hakem,您可以在您的回答中为未来的访客提供该注释的适当引用。