📜  集合 laravel 上的 sortbydesc - PHP (1)

📅  最后修改于: 2023-12-03 15:28:52.216000             🧑  作者: Mango

集合 Laravel 上的 sortByDesc

在 Laravel 集合中,sortByDesc 方法可用于按降序对集合中的项目进行排序。

语法
$collection->sortByDesc($callback);

其中,$callback 可以是回调函数、方法、属性或键。

使用示例

假设我们有一个包含学生信息的集合,每个学生都有一个 score 属性。

$students = collect([
    ['name' => 'Alice', 'score' => 98],
    ['name' => 'Bob', 'score' => 85],
    ['name' => 'Charlie', 'score' => 76],
    ['name' => 'David', 'score' => 90],
    ['name' => 'Eddie', 'score' => 82],
]);

我们可以使用 sortByDesc 按照每个学生的分数进行降序排序:

$sortedStudents = $students->sortByDesc('score');

// 输出结果
dd($sortedStudents->all());
array:5 [
  0 => array:2 [
    "name" => "Alice"
    "score" => 98
  ]
  1 => array:2 [
    "name" => "David"
    "score" => 90
  ]
  2 => array:2 [
    "name" => "Bob"
    "score" => 85
  ]
  3 => array:2 [
    "name" => "Eddie"
    "score" => 82
  ]
  4 => array:2 [
    "name" => "Charlie"
    "score" => 76
  ]
]

我们还可以使用回调函数自定义排序方式:

$sortedStudents = $students->sortByDesc(function ($student) {
    return $student['name'];
});

// 输出结果
dd($sortedStudents->all());
array:5 [
  0 => array:2 [
    "name" => "Eddie"
    "score" => 82
  ]
  1 => array:2 [
    "name" => "David"
    "score" => 90
  ]
  2 => array:2 [
    "name" => "Charlie"
    "score" => 76
  ]
  3 => array:2 [
    "name" => "Bob"
    "score" => 85
  ]
  4 => array:2 [
    "name" => "Alice"
    "score" => 98
  ]
]
结论

sortByDesc 方法为 Laravel 集合提供了一种简单易用的降序排序方式,可以方便地根据指定的属性、方法或回调函数对集合进行排序。