将 PHP 中的数组索引与 array_reduce 相乘
Multiplying array indexes in PHP with array_reduce
为什么 array_reduce()
方法在加法和乘法时的工作方式不同?当我 添加 下面的数组值时,代码会产生预期的结果:15。但是当我乘时,它returns: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));
}
这里引用 this 讨论:
The first parameter to the callback is an accumulator where the result-in-progress is effectively assembled. If you supply an $initial value the accumulator starts out with that value, otherwise it starts out null.
为什么 array_reduce()
方法在加法和乘法时的工作方式不同?当我 添加 下面的数组值时,代码会产生预期的结果:15。但是当我乘时,它returns: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));
}
这里引用 this 讨论:
The first parameter to the callback is an accumulator where the result-in-progress is effectively assembled. If you supply an $initial value the accumulator starts out with that value, otherwise it starts out null.