我有一个查询,它返回类别及其子类别的名称。
$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')
是否可以不进行太多的循环迭代并检查哪个子类别属于哪个类别?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
您可以使用laravel
集合首先,您需要通过
groupBy方法进行分组,然后映射每个组并合并每个子数组。$result = collect($subcategories) ->groupBy('catname') ->map(function ($item) { return array_merge($item->toArray()); })->all();