理解php的array_reduce函数
array_reduce — 用回调函数迭代地将数组简化为单一的值
array_reduce ( array $array , callable $callback , mixed $initial = null ) : mixed
array_reduce() 将回调函数 callback 迭代地作用到 array 数组中的每一个单元中,从而将数组简化为单一的值。
参数说明:
-
array输入的 array。
-
callbackcallback ( mixed
$carry, mixed$item) : mixed-
carry携带上次迭代里的值; 如果本次迭代是第一次,那么这个值是initial。 -
item携带了本次迭代的值。
-
-
initial如果指定了可选参数
initial,该参数将在处理开始前使用,或者当处理结束,数组为空时的最后一个结果。
我的理解
-
过程:
-
array_reduce函数将第一个参数(数组)中元素的值依次拿出来,每拿一个元素的值就会调用第二个参数(回调函数)。
-
就是说,数组中有几个元素,回调函数就会被调用几次。
-
回调函数被调用的时候,第一个参数是上次被调用时返回的值,第二个参数是对应的被从数组中拿出的元素的值。
-
回调函数第一次被调用时,array_reduce的第三个参数存在时会被作为初始值当作时回调的第一个参数使用,否则这次回调的第一个参数为NULL。
-
-
通常第二个参数不直接使用匿名函数,对应的做法:使用某一具名函数的名称,并在array_reduce被调用之前声明这个函数。
<?php
function callback($上一次被调用的值, $本次调用的值){
// 具体的逻辑处理
return $处理后的结果;
}
array_reduce($需要依次处理的数组, 'callback', $回调第一次被调用时传给第一个参数的默认值)

浙公网安备 33010602011771号