📅  最后修改于: 2023-12-03 15:17:12.903000             🧑  作者: Mango
在Laravel中,如果您需要对一组数据进行聚合操作(例如,从数组中计算出总和,平均值等),则可以使用集合(Collection)类的reduce
方法。该方法使用给定的回调函数将集合的值累加到一个单一的结果中,最后返回一个聚合值。
$collection->reduce(callable $callback, mixed $initial = null)
$callback
:必要参数,要应用于集合的每个项的回调函数。它带有两个参数,第一个参数是传递到回调函数中的累加值,第二个参数是集合中的当前项。回调函数必须返回累加值。$initial
:可选参数,用于初始化累加器。如果不提供,则使用集合中的第一个项作为初始值。返回一个单一的聚合值。
$collection = collect([1, 2, 3, 4, 5]);
$sum = $collection->reduce(function ($carry, $item) {
return $carry + $item;
});
echo $sum; // 输出 15
在上面的例子中,我们通过collect
函数将数组变成了集合。 接着,我们调用reduce
方法来计算这个集合的总和。我们传递了一个回调函数来实现这个操作。初始值没有指定,因此使用了默认值,即集合的第一个项。
我们也可以传递自己的初始值:
$collection = collect([1, 2, 3, 4, 5]);
$sum = $collection->reduce(function ($carry, $item) {
return $carry + $item;
}, 10);
echo $sum; // 输出 25
在上面的例子中,我们将自定义值10作为初始值传递给了reduce
方法,因此会在计算集合时使用这个初始值。