這個函數在中間件調度器的實現上會用到,這裏記錄一下該函數的使用方式。
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