Kombinieren mehrerer Ergebnisse beim Zusammenführen von Tabellen: eine Schritt-für-Schritt-Anleitung
P粉769045426
P粉769045426 2024-04-04 09:44:27
0
1
569

Ich habe eine Abfrage, die die Namen von Kategorien und ihren Unterkategorien zurückgibt.

$subcategories = Subcategory::select('subcategories.name as subcatname', 'categories.name as catname')
                ->join('categories', 'subcategories.idCategory', '=', 'categories.id')
                ->get();

Jetzt bekomme ich folgendes Ergebnis:

'Music' => 'Jazz',
'Music' => 'Rock',
'Music' => 'Pop',
'Movie' => 'Action'

Wie kann ich es so gruppieren:

'Music' => array('Jazz', 'Rock','Pop'),
'Movies' => array('Action')

Ist es möglich, ohne zu viele Schleifeniterationen zu prüfen, welche Unterkategorie zu welcher Kategorie gehört?

P粉769045426
P粉769045426

Antworte allen(1)
P粉513318114

您可以使用laravel集合

首先,您需要通过 groupBy 方法进行分组,然后映射每个组并合并每个子数组。

$result = collect($subcategories)
        ->groupBy('catname')
        ->map(function ($item) {
            return array_merge($item->toArray());
        })->all();
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage