连接表时组合多个结果:分步指南
P粉769045426
P粉769045426 2024-04-04 09:44:27
[PHP讨论组]

我有一个查询,它返回类别及其子类别的名称。

$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();
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号