函数:Ds\Sequence::reduce()
适用版本:PHP 7.4.0或更高版本
用法:reduce()函数用于对Sequence(序列)中的所有元素进行迭代,并将它们缩减为单个值。
语法:public function reduce(callable $callback, $initial = null)
参数:
- $callback(必需):一个回调函数,用于对每个元素进行处理。回调函数接受两个参数:累计值和当前元素值,并返回累计值。
- $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库才能使用该函数。