PHP函式array_reduce()用於透過迭代對陣列中的每個元素進行歸約(reduce)操作,並返回結果。
用法:
mixed array_reduce ( array $array , callable $callback [, mixed $initial = NULL ] )
引數說明:
$array
:要進行歸約操作的陣列。$callback
:歸約操作的回撥函式。它接受兩個引數:累積值和當前元素的值,並返回一個更新後的累積值。回撥函式的定義為:callback(mixed $carry, mixed $item): mixed
。$initial
(可選):可選的初始累積值。如果沒有指定,則使用陣列中的第一個元素作為初始累積值。
示例:
// 例1:對陣列中的元素求和
$array = [1, 2, 3, 4, 5];
$sum = array_reduce($array, function ($carry, $item) {
return $carry + $item;
}, 0);
echo "Sum: $sum"; // 輸出:Sum: 15
// 例2:將字串陣列連線成一個字串
$array = ["Hello", " ", "World!"];
$result = array_reduce($array, function ($carry, $item) {
return $carry . $item;
}, "");
echo "Result: $result"; // 輸出:Result: Hello World!
// 例3:使用初始累積值來實現階乘計算
$array = [1, 2, 3, 4, 5];
$factorial = array_reduce($array, function ($carry, $item) {
return $carry * $item;
}, 1);
echo "Factorial: $factorial"; // 輸出:Factorial: 120
在這些示例中,array_reduce()
函式分別用於計算陣列元素的和、連線字串陣列和計算階乘。透過傳遞不同的回撥函式,我們可以實現不同的歸約操作。