谁能帮忙解释一下array_reduce函数的工作原理http://php.net/array_reduce
我在文档中有描述“array_reduce() 迭代地将回调函数回调应用于数组的元素,从而将数组减少为单个值。” 我完全不明白。
“减少”是什么意思?其他值是否被丢弃?归约的原理也不清楚,它留哪一个,最大的,最小的,为什么?
例如在下面的代码中:
$array = array(
1, 2, 'tom', '7jerry', 010, '020'
);
$callback = function ($a, $b) {
return $a + intval($b);
};
echo array_reduce($array, $callback, 1);
答案将是 39,但为什么以及如何获得它尚不清楚。
在您的回调
$a中 - 总值,$b- 当前元素。函数本身的操作将减少到'yreturn $a + intval($b);的值添加到当前总和。该函数本身将您的回调应用于每个元素并累积最终值。$bintarray_reduce一步步:
在这里,一个小小的尴尬只能是with-
7jerry当你试图得到它时,它int会给出7。因此,在第5步,总和将等于11。完成所有步骤后,结果将是 39。