Ds\Vector::reduce()
是 PHP Ds 扩展提供的一个方法,用于在向量中应用一个用户定义的回调函数来对向量中的元素进行归约操作。该方法会返回一个单一的值作为结果。
用法:
public Ds\Vector::reduce ( callable $callback [, mixed $initial ] ) : mixed
参数:
$callback
:必需。一个用户定义的回调函数,用于对每个元素进行归约操作。回调函数接受两个参数,前一个参数是归约结果的累积值(初始值为$initial
或上一次归约的结果),后一个参数是当前被迭代的元素值。$initial
:可选。初始值,用于第一次归约操作时作为累积值。如果未提供此参数,则将使用向量的第一个元素作为初始值。
返回值: 归约操作的结果值。
示例:
// 创建一个 Ds\Vector 对象
$vector = new Ds\Vector([1, 2, 3, 4, 5]);
// 使用 reduce 方法对向量进行归约操作,计算元素的和
$sum = $vector->reduce(function($carry, $item) {
return $carry + $item;
}, 0);
echo $sum; // 输出:15
在上面的示例中,我们创建了一个包含整数的向量 $vector
。然后,我们使用 reduce
方法对向量进行归约操作,计算向量中所有元素的和。我们传递了一个匿名函数作为回调函数,该函数接受两个参数 $carry
和 $item
,并将它们相加以更新累积值。最后,我们将初始值设置为 0,以确保在第一次归约操作时有一个正确的累积值。最后,我们打印出结果值 $sum
,它应该是 15,即向量中所有元素的总和。