我有一個(gè)查詢,它會(huì)傳回類別及其子類別的名稱。
$subcategories = Subcategory::select('subcategories.name as subcatname', 'categories.name as catname') ->join('categories', 'subcategories.idCategory', '=', 'categories.id') ->get();
現(xiàn)在我得到的結(jié)果如下:
'Music' => 'Jazz', 'Music' => 'Rock', 'Music' => 'Pop', 'Movie' => 'Action'
我怎麼才能將它分組為這樣的:
'Music' => array('Jazz', 'Rock','Pop'), 'Movies' => array('Action')
是否可以不進(jìn)行太多的循環(huán)迭代並檢查哪個(gè)子類別屬於哪個(gè)類別?
您可以使用laravel集合
首先,您需要透過 groupBy
方法進(jìn)行分組,然後對應(yīng)
每個(gè)群組並合併每個(gè)子陣列。
$result = collect($subcategories) ->groupBy('catname') ->map(function ($item) { return array_merge($item->toArray()); })->all();