PHP 怎么能把数组 根据分类 组成多个数组

[{"id":"11","cate_id":"1","year":"2020","moon":"01","day":"11","hits":"1","first_time":"2020-01-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"12","cate_id":"1","year":"2020","moon":"01","day":"11","hits":"1","first_time":"2020-01-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"21","cate_id":"1","year":"2020","moon":"02","day":"11","hits":"1","first_time":"2020-02-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"22","cate_id":"1","year":"2020","moon":"02","day":"11","hits":"1","first_time":"2020-02-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"31","cate_id":"1","year":"2020","moon":"03","day":"11","hits":"1","first_time":"2020-03-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"32","cate_id":"1","year":"2020","moon":"03","day":"11","hits":"1","first_time":"2020-03-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"37","cate_id":"1","year":"2020","moon":"04","day":"11","hits":"2","first_time":"2020-04-11 08:02:34","name":"\u5546\u54c1\u4e00"},{"id":"41","cate_id":"1","year":"2020","moon":"04","day":"11","hits":"2","first_time":"2020-04-11 08:10:56","name":"\u5546\u54c1\u4e00"},{"id":"42","cate_id":"1","year":"2020","moon":"05","day":"11","hits":"1","first_time":"2020-05-11 08:11:46","name":"\u5546\u54c1\u4e00"},{"id":"43","cate_id":"1","year":"2020","moon":"05","day":"11","hits":"2","first_time":"2020-05-11 08:15:49","name":"\u5546\u54c1\u4e00"},{"id":"44","cate_id":"1","year":"2020","moon":"06","day":"11","hits":"1","first_time":"2020-06-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"45","cate_id":"1","year":"2020","moon":"06","day":"11","hits":"1","first_time":"2020-06-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"50","cate_id":"1","year":"2020","moon":"06","day":"11","hits":"1","first_time":"2020-06-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"51","cate_id":"1","year":"2020","moon":"06","day":"11","hits":"1","first_time":"2020-06-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"52","cate_id":"1","year":"2020","moon":"06","day":"11","hits":"1","first_time":"2020-06-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"53","cate_id":"1","year":"2020","moon":"06","day":"11","hits":"1","first_time":"2020-06-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"54","cate_id":"1","year":"2020","moon":"06","day":"11","hits":"1","first_time":"2020-06-11 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"55","cate_id":"1","year":"2020","moon":"07","day":"01","hits":"1","first_time":"2020-07-01 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"56","cate_id":"1","year":"2020","moon":"07","day":"01","hits":"1","first_time":"2020-07-01 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"57","cate_id":"1","year":"2020","moon":"07","day":"01","hits":"1","first_time":"2020-07-01 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"58","cate_id":"1","year":"2020","moon":"07","day":"01","hits":"1","first_time":"2020-07-01 07:51:14","name":"\u5546\u54c1\u4e00"},{"id":"67","cate_id":"3","year":"2020","moon":"07","day":"01","hits":"1","first_time":"2020-07-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"70","cate_id":"3","year":"2020","moon":"08","day":"01","hits":"1","first_time":"2020-08-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"71","cate_id":"3","year":"2020","moon":"08","day":"01","hits":"1","first_time":"2020-08-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"72","cate_id":"3","year":"2020","moon":"08","day":"01","hits":"1","first_time":"2020-08-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"79","cate_id":"3","year":"2020","moon":"08","day":"01","hits":"1","first_time":"2020-08-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"82","cate_id":"3","year":"2020","moon":"09","day":"01","hits":"1","first_time":"2020-09-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"86","cate_id":"3","year":"2020","moon":"09","day":"01","hits":"1","first_time":"2020-09-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"87","cate_id":"3","year":"2020","moon":"09","day":"01","hits":"1","first_time":"2020-09-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"88","cate_id":"3","year":"2020","moon":"09","day":"01","hits":"1","first_time":"2020-09-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"89","cate_id":"3","year":"2020","moon":"10","day":"01","hits":"1","first_time":"2020-10-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"90","cate_id":"3","year":"2020","moon":"10","day":"01","hits":"1","first_time":"2020-10-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"91","cate_id":"3","year":"2020","moon":"10","day":"01","hits":"1","first_time":"2020-10-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"100","cate_id":"3","year":"2020","moon":"11","day":"01","hits":"1","first_time":"2020-11-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"105","cate_id":"3","year":"2020","moon":"11","day":"01","hits":"1","first_time":"2020-11-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"106","cate_id":"3","year":"2020","moon":"11","day":"01","hits":"1","first_time":"2020-11-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"107","cate_id":"3","year":"2020","moon":"12","day":"01","hits":"1","first_time":"2020-12-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"108","cate_id":"3","year":"2020","moon":"12","day":"01","hits":"1","first_time":"2020-12-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"109","cate_id":"3","year":"2020","moon":"12","day":"01","hits":"1","first_time":"2020-12-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"112","cate_id":"3","year":"2020","moon":"12","day":"01","hits":"1","first_time":"2020-12-01 07:51:14","name":"\u5546\u54c1\u4e09"},{"id":"113","cate_id":"3","year":"2020","moon":"12","day":"01","hits":"1","first_time":"2020-12-01 07:51:14","name":"\u5546\u54c1\u4e09"}]

我想做一个报表统计的,查询出来的数据如上。 希望得到这种结果。

按年份(year)输出 分类(cate_id) 12个月(moon)的 点击数量 hits 的值

2020 [{
            cate_id: '1',
            data: [10, 20, 30, 40, 50, 60, 70, 80, 70, 60, 50, 40]
        }, {
            cate_id: '2',
            data: [30, 40, 45, 50, 55, 40, 30, 28, 17, 55, 35, 22]
        }, {
            cate_id: '3',
            data: [29, 46, 56, 66, 46, 38, 28, 47, 53, 33, 17, 40]
        }, {
            cate_id: '4',
            data: [39, 42, 40, 55, 65, 45, 65, 70, 90, 103, 66, 48]
 }]
 2021 [{
            cate_id: '1',
            data: [10, 20, 30, 40, 50, 60, 70, 80, 70, 60, 50, 40]
        }, {
            cate_id: '2',
            data: [30, 40, 45, 50, 55, 40, 30, 28, 17, 55, 35, 22]
        }, {
            cate_id: '3',
            data: [29, 46, 56, 66, 46, 38, 28, 47, 53, 33, 17, 40]
        }, {
            cate_id: '4',
            data: [39, 42, 40, 55, 65, 45, 65, 70, 90, 103, 66, 48]
 }]
阅读 1.7k
2 个回答
    function groupBy($array, $key)
    {
        $grouped = [];
        foreach ($array as $item) {
            $grouped[$item[$key]][] = $item;
        }

        return $grouped;
    }
function groupBy(key,array){
    let keys = Array.from(new Set(array.map(v=>v[key]))) // 获取 key 字段值,去重
    let res= {};
    keys.forEach(v=>{
        res[v] = array.filter(item=>item[key] === v)
        // 此处可以做数据聚合和分析
    })
    return res
}
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题