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

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

发布于 2025-04-25 09:02:45
0
21

函数:Ds\Sequence::reduce() 适用版本:PHP 7.4.0或更高版本 用法:reduce()函数用于对Sequence(序列)中的所有元素进行迭代,并将它们缩减为单个值。 语法:p...

函数:Ds\Sequence::reduce()

适用版本:PHP 7.4.0或更高版本

用法:reduce()函数用于对Sequence(序列)中的所有元素进行迭代,并将它们缩减为单个值。

语法:public function reduce(callable $callback, $initial = null)

参数:

  1. $callback(必需):一个回调函数,用于对每个元素进行处理。回调函数接受两个参数:累计值和当前元素值,并返回累计值。
  2. $initial(可选):在迭代开始前用作初始值的值。如果没有提供初始值,则将使用Sequence中的第一个元素。

返回值:返回最终的累计值。

示例:

use Ds\Sequence;

$sequence = new Sequence([1, 2, 3, 4, 5]);

// 使用 reduce() 对Sequence中的元素进行相加操作
$result = $sequence->reduce(function($carry, $item) {
    return $carry + $item;
});

echo $result; // 输出: 15(1 + 2 + 3 + 4 + 5 = 15)

// 使用 reduce() 对Sequence中的元素进行字符串连接操作
$result = $sequence->reduce(function($carry, $item) {
    return $carry . $item;
}, 'Initial ');

echo $result; // 输出: Initial 12345(将字符串 'Initial ' 与每个元素连在一起)

// 如果没有提供初始值,则将使用Sequence中的第一个元素作为初始值
$result = $sequence->reduce(function($carry, $item) {
    return $carry * $item;
});

echo $result; // 输出: 120(1 * 2 * 3 * 4 * 5 = 120)

注意:在上述示例中,我们使用了Ds库中的Sequence类,由于该库不是PHP的原生函数库,所以您需要先安装Ds库才能使用该函数。

评论
一个月内的热帖推荐
啊龙
Lv.1普通用户

9545

帖子

31

小组

3242

积分

赞助商广告
站长交流