andriajah Thu Nov 2023 7 months ago

Contoh Laravel Collection Sort By Multiple Fields

Dalam Laravel, Anda dapat menggunakan metode sortBy pada koleksi untuk mengurutkan berdasarkan beberapa bidang. Berikut adalah contoh penggunaannya:

Saat bekerja dengan Laravel Collection dan ingin mengurutkan berdasarkan beberapa bidang tanpa menggunakan database, Anda masih dapat menggunakan sortBy. Berikut adalah contoh tanpa keterlibatan database:

use Illuminate\Support\Collection;

// Membuat koleksi manual (tanpa database)
$items = collect([
    ['name' => 'Product A', 'category' => 'Electronics', 'price' => 150],
    ['name' => 'Product B', 'category' => 'Clothing', 'price' => 50],
    ['name' => 'Product C', 'category' => 'Electronics', 'price' => 120],
    ['name' => 'Product D', 'category' => 'Clothing', 'price' => 80],
    ['name' => 'Product E', 'category' => 'Electronics', 'price' => 200],
]);

// Menggunakan koleksi untuk mengurutkan berdasarkan category secara ascending dan kemudian berdasarkan price secara descending
$sortedItems = $items->sortBy([
    ['category', 'asc'],
    ['price', 'desc'],
]);

// Menampilkan hasil
$sortedItems->each(function ($item) {
    echo "Name: {$item['name']}, Category: {$item['category']}, Price: {$item['price']}\n";
});

Dalam contoh ini, kita membuat sebuah koleksi manual dari array PHP dan kemudian menggunakan sortBy untuk mengurutkannya berdasarkan category secara ascending, dan jika ada item dengan kategori yang sama, diurutkan berdasarkan price secara descending.

Anda dapat mengadaptasi contoh ini sesuai dengan kebutuhan aplikasi Anda, baik itu bekerja dengan data dari database atau data yang dibuat secara manual.

laravel sortBy collection laravel