andriajah Wed Oct 2023 6 months ago

Contoh Laravel Group By First Letter

Anda dapat menggunakan metode `groupBy` dan fungsi `substr` untuk mengelompokkan data dalam Laravel berdasarkan huruf pertama dalam kolom teks. Berikut adalah contoh bagaimana Anda bisa melakukannya:

Misalkan Anda memiliki model `Person` dengan kolom `name` dan Anda ingin mengelompokkan orang berdasarkan huruf pertama dalam nama mereka:

 

$groups = Person::all()
    ->groupBy(function ($item) {
        return strtoupper(substr($item->name, 0, 1));
    });

 

Dalam contoh ini, kami menggunakan `groupBy` untuk mengelompokkan hasil dari kueri `Person::all()` berdasarkan huruf pertama dalam kolom `name`. Fungsi `substr` digunakan untuk mengambil karakter pertama dari nama dan `strtoupper` untuk memastikan bahwa huruf besar dan kecil dianggap sama.

 

Anda akan mendapatkan hasil yang mirip dengan array asosiatif di mana kunci adalah huruf pertama dalam nama dan nilai adalah kumpulan orang yang dimulai dengan huruf yang sama. Anda dapat mengakses grup-grup ini seperti ini:

foreach ($groups as $letter => $people) {
    echo "Orang-orang yang nama mereka dimulai dengan huruf $letter:\n";
    foreach ($people as $person) {
        echo $person->name . "\n";
    }
}

 

Ini akan mencetak daftar orang dalam setiap grup berdasarkan huruf pertama dalam nama mereka.

laravel