根据值对集合中的项目进行分组和计数

问题描述 投票:0回答:1

我有以下收藏:

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

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

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

laravel laravel-5 laravel-collection
1个回答
0
投票

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

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

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

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

此后只需使用array_sum()

© www.soinside.com 2019 - 2024. All rights reserved.