連接表時組合多個結果:逐步指南
P粉769045426
P粉769045426 2024-04-04 09:44:27
0
1
626

我有一個查詢,它會傳回類別及其子類別的名稱。

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

現在我得到的結果如下:

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

我怎麼才能將它分組為這樣的:

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

是否可以不進行太多的循環迭代並檢查哪個子類別屬於哪個類別?

P粉769045426
P粉769045426

全部回覆(1)
P粉513318114

您可以使用laravel集合

首先,您需要透過 groupBy 方法進行分組,然後對應每個群組並合併每個子陣列。

$result = collect($subcategories)
        ->groupBy('catname')
        ->map(function ($item) {
            return array_merge($item->toArray());
        })->all();
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板