函数名: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()
方法将抛出一个异常。