$users = collect([
['name' => 'John', 'age' => 30, 'city' => 'NYC'],
['name' => 'Jane', 'age' => 25, 'city' => 'LA'],
['name' => 'Bob', 'age' => 30, 'city' => 'SF'],
]);
// Сортування за віком, потім за ім'ям
$sorted = $users->sortBy([
['age', 'asc'],
['name', 'asc'],
]);
// За містом спаданням, далі за віком
$sorted = $users->sortBy([
['city', 'desc'],
['age', 'asc'],
]);
// З callback
$sorted = $users->sortBy([
[fn($user) => $user['age'], 'desc'],
['name', 'asc'],
]);
// Еloquent-колекції
$posts = Post::all()->sortBy([
['featured', 'desc'],
['published_at', 'desc'],
]);
// Вкладений атрибут
$orders = Order::with('customer')->get()->sortBy([
['customer.name', 'asc'],
['total', 'desc'],
]);
// Скинути ключі
$sorted->values();
// Одне поле - спаданням
$users->sortByDesc('age');
// Збереження ключів
$users->sortBy('age'); // Залишає ключі
$users->sortBy('age')->values(); // Перегенерує ключі
// Складне сортування з пріоритетами
$tasks = collect($tasks)->sortBy([
['priority', 'desc'],
['due_date', 'asc'],
['created_at', 'asc'],
]);
// Сортування товарів за рейтингом і ціною
$products = Product::all()->sortBy([
['rating', 'desc'],
['price', 'asc'],
])->values();