查詢

Ds\Set::reduce()函式—用法及示例

「 根據提供的回撥函式對集合的所有元素進行歸約操作,返回一個單個值 」


函式名稱: 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 語句輸出歸約結果。

補充糾錯
上一個函式: Ds\Set::last()函式
下一個函式: Ds\Set::merge()函式
熱門PHP函式
分享連結