根据商品的价值对商品进行分组和计数

时间:2020-01-04 17:40:00

标签: laravel laravel-5 laravel-collection

我有以下收藏:

0 => "15.00",
1 => "25.00",
2 => "500.00",
3 => "19.00",
4 => "123.00",
...

我想以某种方式获取0到99之间,100到199之间,200到299之间的所有值的计数,以此类推,直到达到最大值。

有些馆藏可能多达300个,有些馆藏可能多达1000个。它们仍需要按100个一组进行计数。

1 个答案:

答案 0 :(得分:0)

您可以使用mapToGroup方法并使用除法来创建组。然后分别总结。

$grouped = $collection->mapToGroups(function ($item, $key) {
    return [floor($item / 100) => $item];
});

此外,您可以退出使用Collection方法,而使用纯PHP。

$grouped = [];
foreach($array as $item) {
    $grouped[floor($item / 100)][] = $item;
}

之后,只需使用array_sum()