array_reduce

這個函數在中間件調度器的實現上會用到,這裏記錄一下該函數的使用方式。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章