Метод sort
Метод sort применяется к коллекции и возвращает новую коллекцию,
отсортированную по возрастанию значений. При этом исходные ключи
сохраняются. Метод не принимает параметров и использует стандартные
операторы сравнения PHP. Для сортировки по ключам используется
метод sortKeys.
Синтаксис
<?php
$collection->sort();
?>
Пример
Давайте отсортируем коллекцию чисел по возрастанию:
<?php
use Illuminate\Support\Collection;
$collection = new Collection([3, 1, 4, 1, 5, 9, 2]);
$res = $collection->sort();
echo $res;
?>
Результат выполнения кода:
[1, 1, 2, 3, 4, 5, 9]
Пример
Отсортируем коллекцию строк в алфавитном порядке:
<?php
use Illuminate\Support\Collection;
$collection = new Collection(['zebra', 'apple', 'mango', 'banana']);
$res = $collection->sort();
echo $res;
?>
Результат выполнения кода:
["apple", "banana", "mango", "zebra"]
Пример
Сортировка ассоциативного массива с сохранением ключей:
<?php
use Illuminate\Support\Collection;
$collection = new Collection([
'first' => 10,
'second' => 5,
'third' => 8,
'fourth' => 3
]);
$res = $collection->sort();
echo $res;
?>
Результат выполнения кода:
["fourth" => 3, "second" => 5, "third" => 8, "first" => 10]
Пример
Сортировка коллекции объектов по свойству с помощью метода sortBy:
<?php
use Illuminate\Support\Collection;
class User
{
public $name;
public $age;
public function __construct($name, $age)
{
$this->name = $name;
$this->age = $age;
}
}
$collection = new Collection([
new User('John', 30),
new User('Jane', 25),
new User('Bob', 35),
new User('Alice', 28)
]);
$res = $collection->sortBy('age');
foreach ($res as $user) {
echo $user->name . ': ' . $user->age . "\n";
}
?>
Результат выполнения кода:
"Jane: 25"
"Alice: 28"
"John: 30"
"Bob: 35"
Смотрите также
-
метод
sortBy,
который сортирует коллекцию по заданному ключу -
метод
sortByDesc,
который сортирует коллекцию по убыванию -
метод
reverse,
который меняет порядок элементов на обратный -
метод
keys,
который возвращает все ключи коллекции