函式名稱: Ds\Set::reduce()
適用版本: PHP >= 7.3
函式說明: Ds\Set::reduce() 方法用於根據提供的回撥函式對集合的所有元素進行歸約操作,返回一個單個值。
用法:
public Ds\Set::reduce ( callable $callback [, mixed $initial = NULL ] ) : mixed
引數:
- $callback: 必需,回撥函式,用於對集合的元素進行歸約操作。該回撥函式有兩個引數:第一個引數是累積的值,第二個引數是集合中的當前元素。回撥函式應該返回一個新的累積結果。
- $initial: 可選,初始化的累積值。如果未提供 $initial,那麼第一個集合元素將作為累積值的初始值。
返回值: 返回一個單個值作為歸約結果。
示例:
$set = new Ds\Set([2, 4, 6, 8]);
// 使用 reduce 方法對集合中的元素進行求和
$sum = $set->reduce(function($carry, $item) {
return $carry + $item;
}, 0);
echo $sum; // 輸出: 20
// 使用 reduce 方法查詢集合中的最大值
$max = $set->reduce(function($carry, $item) {
return $carry >= $item ? $carry : $item;
});
echo $max; // 輸出: 8
在上面的示例中,我們建立了一個包含整數的集合。然後,我們使用 reduce 方法對集合進行了兩種不同的歸約操作:求和和查詢最大值。第一個示例中,我們將累積值初始化為0,然後使用回撥函式對集合元素依次累加得到總和。在第二個示例中,我們未提供初始化的累積值,因此第一個集合元素作為初始值。然後,使用回撥函式對集合元素進行比較,找到最大值。最後,我們透過 echo
語句輸出歸約結果。