Как сделать приорите в коллекции?

В Laravel существует несколько способов сделать приоритет в коллекции. Рассмотрим их подробнее.

1. Использование метода sortBy():
Метод sortBy() позволяет сортировать коллекцию по указанному ключу или используя пользовательскую функцию сравнения.

Пример сортировки коллекции по приоритету:

$collection = collect([
    ['name' => 'Task 1', 'priority' => 3],
    ['name' => 'Task 2', 'priority' => 1],
    ['name' => 'Task 3', 'priority' => 2],
]);

$sorted = $collection->sortBy('priority');

2. Использование метода sort():
Метод sort() может быть использован для сортировки коллекции по её значениям при определенных условиях, в том числе приоритетах.

Пример сортировки коллекции с использованием пользовательской функции сравнения:

$collection = collect([3, 1, 2]);

$sorted = $collection->sort(function ($a, $b) {
    if ($a == 1) {
        return -1;
    } elseif ($b == 1) {
        return 1;
    } else {
        return $a - $b;
    }
});

3. Использование метода values():
Метод values() позволяет переупорядочить коллекцию так, чтобы её ключи стали последовательными номерами, а их значения сохранены в новой коллекции с сохранением порядка.

Пример сортировки коллекции по приоритету с использованием метода values():

$collection = collect([
    'Task 1' => 3,
    'Task 2' => 1,
    'Task 3' => 2,
]);

$sorted = $collection->sort()->values();

После применения одного из методов сортировки к коллекции, вы получите отсортированную коллекцию с учетом приоритетов.