laravel collect结果集group分组合并数据

1、需求

  • 将相同 apply_id 的 apply_remark 用 ; 拼接
copy $r = [
     ['apply_id' => 1, 'apply_remark' => 'xxx'],
     ['apply_id' => 1, 'apply_remark' => 'xxx2'],
     ['apply_id' => 2, 'apply_remark' => 'xxx3'],
 ];

2、编码

copy$r = [
    ['apply_id' => 1, 'apply_remark' => 'xxx'],
    ['apply_id' => 1, 'apply_remark' => 'xxx2'],
    ['apply_id' => 2, 'apply_remark' => 'xxx3'],
];
$rs = collect($r)->groupBy('apply_id')
    ->map(function ($group) {
        return [
            'apply_id' => $group->first()['apply_id'],
            'apply_remark' => $group->pluck('apply_remark')->implode(';'),
        ];
    })
    ->values()
    ->toArray();
dd($rs);

3、结果

copyarray:2 [
  0 => array:2 [
    "apply_id" => 1
    "apply_remark" => "xxx;xxx2"
  ]
  1 => array:2 [
    "apply_id" => 2
    "apply_remark" => "xxx3"
  ]
]
posted @   pine007  阅读(118)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示

目录导航