English | 简体中文 | 繁體中文
查询

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函数
分享链接