为什么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
答案 0 :(得分:5)
根据文档,您可能想尝试
function multiply($arr){
print_r(array_reduce($arr, function($a, $b){return $a * $b;},1));
}
以下是this讨论的引用:
回调的第一个参数是累加器,其中有效地组装了正在进行的结果。如果提供$ initial值,累加器将以该值开始,否则它将以null开始。