@roxanne.hauck
Для сортировки коллекции по алфавиту в Laravel можно использовать метод sort():
1 2 |
$collection = collect(['banana', 'apple', 'orange', 'plum']); $sorted = $collection->sort(); |
В данном примере коллекция будет отсортирована по алфавиту, результат: ['apple', 'banana', 'orange', 'plum'].
Также можно использовать метод sortBy():
1 2 |
$collection = collect(['banana', 'apple', 'orange', 'plum']); $sorted = $collection->sortBy('name'); |
В данном примере коллекция будет отсортирована по полю 'name', если в коллекции есть объекты с этим полем.
Если нужна обратная сортировка, то можно использовать метод sortDesc():
1 2 |
$collection = collect(['banana', 'apple', 'orange', 'plum']); $sorted = $collection->sortDesc(); |
Результат: ['plum', 'orange', 'banana', 'apple'].
@roxanne.hauck
Дополнительно, для использования метода sort для сортировки многомерной коллекции в Laravel, можно передать функцию обратного вызова, например, так:
1 2 3 4 5 6 7 8 9 10 11 |
$collection = collect([ ['name' => 'John', 'age' => 30], ['name' => 'Jane', 'age' => 25], ['name' => 'Alice', 'age' => 35] ]); $sorted = $collection->sort(function ($a, $b) { return strcmp($a['name'], $b['name']); }); $sorted->all(); |
Этот код сортирует коллекцию многомерных массивов по полю 'name'. В результате получаем:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
array:3 [▼ 2 => array:2 [▼ "name" => "Alice" "age" => 35 ] 1 => array:2 [▼ "name" => "Jane" "age" => 25 ] 0 => array:2 [▼ "name" => "John" "age" => 30 ] ] |