根据价值对集合中的项目进行分组和计数
Group and count items in a collection based on their value
我有以下合集:
0 => "15.00",
1 => "25.00",
2 => "500.00",
3 => "19.00",
4 => "123.00",
...
我想以某种方式获取 0 到 99 之间、100 到 199 之间、200 到 299 之间等所有值的计数,直到达到最大数量。
有的藏品可能达300件,有的可能达1000件,仍需按100件为一组计算。
可以使用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()
我有以下合集:
0 => "15.00",
1 => "25.00",
2 => "500.00",
3 => "19.00",
4 => "123.00",
...
我想以某种方式获取 0 到 99 之间、100 到 199 之间、200 到 299 之间等所有值的计数,直到达到最大数量。
有的藏品可能达300件,有的可能达1000件,仍需按100件为一组计算。
可以使用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()