在Laravel中,可以使用groupBy
方法按照指定的键对集合进行分组,然后使用sortBy
方法按照指定的顺序进行排序。以下是一个示例代码:
$collection = collect([
['name' => 'John', 'age' => 25, 'score' => 80],
['name' => 'Jane', 'age' => 30, 'score' => 90],
['name' => 'Bob', 'age' => 25, 'score' => 75],
['name' => 'Alice', 'age' => 30, 'score' => 85],
]);
$grouped = $collection->groupBy('age')->map(function ($group) {
return $group->sortBy('score');
});
$grouped->all();
在这个示例中,我们有一个包含多个用户的集合。我们首先使用groupBy
方法按照年龄进行分组,然后使用map
方法对每个分组进行排序。最后,我们使用all
方法返回排序后的结果。
输出结果如下:
[
25 => [
['name' => 'Bob', 'age' => 25, 'score' => 75],
['name' => 'John', 'age' => 25, 'score' => 80],
],
30 => [
['name' => 'Alice', 'age' => 30, 'score' => 85],
['name' => 'Jane', 'age' => 30, 'score' => 90],
],
]
可以看到,集合首先按照年龄进行了分组,然后每个分组按照分数进行了排序。