将具有相似对象的数组或 laravel 集合分组并添加计数

如何在保留值的同时获取数组项的出现次数。例如:


$items = [{code: "2132", tile:"Mechanical Engineers"}, 

          {code: "2134" title: "Chemical engineers"},

          {code: :2132, title: "Mechanical Engineers}]

我想实现的是如下内容:


$sortedItems = [{code: "2134" title: "Chemical engineers", count:1},

                {code: "2132" title: "Chemical engineers", count:2}]

我正在使用Larave,并希望通过使用PHP数组甚至Laravel集合来获得它。以哪个效果更好。


感谢您的帮助,因为我真的被困在这里,不知道如何继续。


收到一只叮咚
浏览 60回答 1
1回答

慕慕森

使用集合和:groupBymap$items = '[{"code": "2132", "title":"Mechanical Engineers"},             {"code": "2134", "title":"Chemical engineers"},             {"code":"2132", "title":"Mechanical Engineers"}]';$array = json_decode($items, true);// try this:$arr = collect($array)->groupBy('code')->map(function($item) {    return array_merge($item->first(), array("count" => $item->count()));})->all();array_values($arr);
打开App,查看更多内容
随时随地看视频慕课网APP