使用collection处理数组的问题

使用 collection,怎么把before转化成after

    $before = [
        ['id' => 1, 'love' => 'apple'],
        ['id' => 1, 'love' => 'orange'],
        ['id' => 1, 'love' => 'banana'],
        ['id' => 2, 'love' => 'pea'],
        ['id' => 2, 'love' => 'apple'],
        ['id' => 3, 'love' => 'banana'],
    ];

    $after = [
        [
            'id' => 1,
            'love' => ['apple', 'orange', 'banana']
        ],
        [
            'id' => 2,
            'love' => ['pea', 'apple']
        ],
        [
            'id' => 3,
            'love' => ['banana']
        ]
    ];

我这边试了一下,大概可以这个这样子:

collect($before)->groupBy('id')->map(function($item){
   return [
       'id' => $item->first()['id'],
       'love' => $item->pluck('love')->all()
   ];
})->all()
JellyBool
修改的评论也不能少于六个字哦!
beaplat-61f 回复 JellyBool
修改的评论也不能少于六个字哦!
UncleCaozy 回复 JellyBool
修改的评论也不能少于六个字哦!
beaplat-61f
修改的评论也不能少于六个字哦!