查詢

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

「 將所有的鍵/值對依次傳遞給回撥函式,並最終返回一個合併後的結果 」


函式名:Ds\Map::reduce()

適用版本:PHP 7.1 及以上

用法:

Ds\Map::reduce() 函式用於將所有的鍵/值對依次傳遞給回撥函式,並最終返回一個合併後的結果。

回撥函式接受兩個引數:第一個引數為累積結果,第二個引數為當前的鍵/值對。回撥函式可使用累積結果和當前鍵/值對來計算新的累積結果,並將其返回。

語法:

public Ds\Map::reduce ( callable $callback [, mixed $initial = NULL ] ) : mixed

引數:

  • $callback:一個回撥函式,用於處理累積結果和當前鍵/值對。回撥函式應該接受兩個引數,並返回一個新的累積結果。
  • $initial(可選):初始的累積結果,預設為 NULL

返回值: 該方法的返回值型別與回撥函式的返回值型別相同。

示例:

$map = new Ds\Map(["a" => 1, "b" => 2, "c" => 3]);

$result = $map->reduce(function ($carry, $item) {
    return $carry + $item;
}, 0);

echo $result; // 輸出:6

上述示例中,我們建立了一個包含三個鍵/值對的 Map 物件。然後,使用 reduce() 方法將所有的值相加,初始的累積結果為 0。最後,輸出結果為 6

注意:

  • 使用 reduce() 方法時,回撥函式必須能夠處理初始累積結果與鍵/值對的型別,並根據需要返回相應型別的結果。
  • 若不指定初始的累積結果,則第一次呼叫回撥函式時,累積結果為第一個鍵/值對,第二次呼叫時,累積結果為第一次呼叫的返回值和第二個鍵/值對。
  • 若 Map 物件為空,並且未指定初始的累積結果,則 reduce() 方法將丟擲一個異常。
補充糾錯
上一個函式: Ds\Map::putAll()函式
下一個函式: Ds\Map::remove()函式
熱門PHP函式
分享連結