📜  laravel 集合排序 - PHP (1)

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

Laravel 集合排序

Laravel 集合提供了多种排序方法,可根据您的需求进行排序。在这篇文章中,我们将学习 Laravel 集合的排序方法。

概述

Laravel 集合排序方法允许您按升序或降序对集合中的值进行排序。通过使用 sort 和 sortBy 方法,您可以按任意键对集合进行排序。

sort 方法

sort 方法允许您对集合进行原地排序,也就是说会直接对原先的集合进行修改。

$collection = collect([50, 20, 40, 10]);

$collection->sort();

$collection->all();

输出:

array:4 [
  0 => 10
  1 => 20
  2 => 40
  3 => 50
]
sortBy 方法

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 集合的排序方法非常灵活,使您可以根据需要对值排序。无论是对简单值还是多维数组,排序功能都非常强大。