Maison > Questions et réponses > le corps du texte
J'ai une requête qui renvoie les noms des catégories et leurs sous-catégories.
$subcategories = Subcategory::select('subcategories.name as subcatname', 'categories.name as catname') ->join('categories', 'subcategories.idCategory', '=', 'categories.id') ->get();
Maintenant, le résultat que j'obtiens est le suivant :
'Music' => 'Jazz', 'Music' => 'Rock', 'Music' => 'Pop', 'Movie' => 'Action'
Comment puis-je le regrouper comme ceci :
'Music' => array('Jazz', 'Rock','Pop'), 'Movies' => array('Action')
Est-ce possible sans trop d'itérations de boucle et de vérifier quelle sous-catégorie appartient à quelle catégorie ?
P粉5133181142024-04-05 00:21:42
Vous pouvez utiliser Laravel集合
Vous devez d'abord passer groupBy
方法进行分组,然后映射
chaque groupe et fusionner chaque sous-tableau.
$result = collect($subcategories) ->groupBy('catname') ->map(function ($item) { return array_merge($item->toArray()); })->all();