📅  最后修改于: 2023-12-03 15:32:37.024000             🧑  作者: Mango
Laravel 集合提供了多种排序方法,可根据您的需求进行排序。在这篇文章中,我们将学习 Laravel 集合的排序方法。
Laravel 集合排序方法允许您按升序或降序对集合中的值进行排序。通过使用 sort 和 sortBy 方法,您可以按任意键对集合进行排序。
sort 方法允许您对集合进行原地排序,也就是说会直接对原先的集合进行修改。
$collection = collect([50, 20, 40, 10]);
$collection->sort();
$collection->all();
输出:
array:4 [
0 => 10
1 => 20
2 => 40
3 => 50
]
sortBy
方法允许您按指定键对集合进行排序。以下是使用 sortBy
方法按 name
键对集合进行排序的示例:
$collection = collect([
['name' => 'John'],
['name' => 'Jane'],
['name' => 'Bob'],
]);
$sorted = $collection->sortBy('name');
$sorted->values()->all();
输出:
array:3 [
0 => [
"name" => "Bob",
]
1 => [
"name" => "Jane",
]
2 => [
"name" => "John",
]
]
您还可以根据键排序多维数组。以下是按 votes
键对多维数组进行排序的示例:
$collection = collect([
[
'name' => 'John',
'votes' => 100,
],
[
'name' => 'Mary',
'votes' => 200,
],
[
'name' => 'Jane',
'votes' => 50,
],
]);
$sorted = $collection->sortBy('votes');
$sorted->values()->all();
输出:
array:3 [
0 => [
"name" => "Jane",
"votes" => 50,
]
1 => [
"name" => "John",
"votes" => 100,
]
2 => [
"name" => "Mary",
"votes" => 200,
]
]
如果要按降序进行排序,可以使用 sortByDesc
方法:
$collection = collect([50, 20, 40, 10]);
$sorted = $collection->sortByDesc('name');
$sorted->values()->all();
输出:
array:4 [
0 => 50
1 => 40
2 => 20
3 => 10
]
Laravel 集合的排序方法非常灵活,使您可以根据需要对值排序。无论是对简单值还是多维数组,排序功能都非常强大。