这个函数在中间件调度器的实现上会用到,这里记录一下该函数的使用方式。
array_reduce
【array_[rɪˈduːs]】
说明:
array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] ) : mixed
array_reduce() 将回调函数 callback 迭代地作用到 array 数组中的每一个单元中,从而将数组简化为单一的值。
参数:
-
array
输入的 array。 -
callback
callback ( mixed $carry , mixed $item ) : mixed
carry
携带上次迭代里的值; 如果本次迭代是第一次,那么这个值是 initial。 -
item
携带了本次迭代的值。 -
initial
如果指定了可选参数 initial,该参数将在处理开始前使用,或者当处理结束,数组为空时的最后一个结果。
<?php
https://www.php.net/manual/zh/function.array-reduce.php
// 也就是说,array_reduce接受两个必须参数,第一个参数是数组,第二个参数是一个函数。
// array_reduce会把数组每个元素都用函数调用,该函数接受两个参数(上次迭代里的值,这次迭代到的元素)。
function myfunc($carry, $item)
{
// 输出上次迭代里的值以及这次迭代到的元素
echo $carry.'-'.$item;
}
$array = ['a','b','c'];
array_reduce($array, 'myfunc');
输出结果为:-a-b-c
// 如果使用第三个可选参数,也就是迭代第一个item时给,carry的初始值。
array_reduce($array, 'myfunc','first');
输出结果为:first-a-b-c