首页 话题 小组 问答 好文 用户 我的社区 域名交易 唠叨

[函数]Ds\Map::reduce()函数—用法及示例

发布于 2025-04-25 08:24:17
0
18

函数名:Ds\Map::reduce() 适用版本:PHP 7.1 及以上 用法: 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() 方法将抛出一个异常。
评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流