Ds\Vector::reduce()
是 PHP Ds 擴充套件提供的一個方法,用於在向量中應用一個使用者定義的回撥函式來對向量中的元素進行歸約操作。該方法會返回一個單一的值作為結果。
用法:
public Ds\Vector::reduce ( callable $callback [, mixed $initial ] ) : mixed
引數:
$callback
:必需。一個使用者定義的回撥函式,用於對每個元素進行歸約操作。回撥函式接受兩個引數,前一個引數是歸約結果的累積值(初始值為$initial
或上一次歸約的結果),後一個引數是當前被迭代的元素值。$initial
:可選。初始值,用於第一次歸約操作時作為累積值。如果未提供此引數,則將使用向量的第一個元素作為初始值。
返回值: 歸約操作的結果值。
示例:
// 建立一個 Ds\Vector 物件
$vector = new Ds\Vector([1, 2, 3, 4, 5]);
// 使用 reduce 方法對向量進行歸約操作,計算元素的和
$sum = $vector->reduce(function($carry, $item) {
return $carry + $item;
}, 0);
echo $sum; // 輸出:15
在上面的示例中,我們建立了一個包含整數的向量 $vector
。然後,我們使用 reduce
方法對向量進行歸約操作,計算向量中所有元素的和。我們傳遞了一個匿名函式作為回撥函式,該函式接受兩個引數 $carry
和 $item
,並將它們相加以更新累積值。最後,我們將初始值設定為 0,以確保在第一次歸約操作時有一個正確的累積值。最後,我們列印出結果值 $sum
,它應該是 15,即向量中所有元素的總和。