美文网首页
PHP 实现以日期分组的浏览足迹【运用场景:电商项目=》我的足迹

PHP 实现以日期分组的浏览足迹【运用场景:电商项目=》我的足迹

作者: mike_lp | 来源:发表于2020-05-13 10:54 被阅读0次

    一、场景

    场景一:

    在电商项目中,用户的个人中心处,会存在我的历史足迹的入口,查看时,是以时间进行分组,倒排展示。
    

    场景二:

    在资源社区平台,用户中心处,会存在我的浏览足迹入口,查看时,也是以时间进行分组,倒排展示。
    

    实现过程

    通过数据库查询时,获取的内容是这样的

       array:5 [▼
        0 => array:6 [▼
            "id" => 20
            "user_id" => 200000000003
            "title" => "无人驾驶面临多项发展问题 L5级汽车或于2030年上路"
            "content_id" => 140000001153
            "content_type" => 14
            "save_time" => "2020-05-11T07:14:16.000000Z"
        ]
        1 => array:6 [▼
            "id" => 19
            "user_id" => 200000000003
            "title" => "汽车车灯控制系统的VHDL语言实现"
            "content_id" => 100000000850
            "content_type" => 10
            "save_time" => "2020-05-11T07:14:10.000000Z"
        ]
        2 => array:6 [▼
            "id" => 16
            "user_id" => 200000000003
            "title" => "BYTON推出首款智能电动车 2019年可以实现全面量产"
            "content_id" => 140000000380
            "content_type" => 14
            "save_time" => "2020-05-11T06:44:21.000000Z"
        ]
        3 => array:6 [▼
            "id" => 14
            "user_id" => 200000000003
            "title" => "TCL公布了其10系列智能手机的价格和规格"
            "content_id" => 140000002546
            "content_type" => 14
            "save_time" => "2020-05-11T06:37:13.000000Z"
        ]
        4 => array:6 [▼
            "id" => 8
            "user_id" => 200000000003
            "title" => "苹果意外在删除的支持视频中确认类似Tile的AirTag名称"
            "content_id" => 140000002534
            "content_type" => 14
            "save_time" => "2020-05-11T03:00:54.000000Z"
        ]
    ]
    

    我们期望的效果是这样的

    array:1 [▼
      "05月11日" => array:6 [▼
      0 => array:6 [▼
      "id" => 41
      "user_id" => 200000000003
      "title" => "字号大小设置"
      "content_id" => 100000024839
      "content_type" => 10
      "save_time" => "2020-05-11T10:35:14.000000Z"
    ]
    1 => array:6 [▼
      "id" => 20
      "user_id" => 200000000003
      "title" => "无人驾驶面临多项发展问题 L5级汽车或于2030年上路"
      "content_id" => 140000001153
      "content_type" => 14
      "save_time" => "2020-05-11T07:14:16.000000Z"
    ]
    2 => array:6 [▼
      "id" => 19
      "user_id" => 200000000003
      "title" => "汽车车灯控制系统的VHDL语言实现"
      "content_id" => 100000000850
      "content_type" => 10
      "save_time" => "2020-05-11T07:14:10.000000Z"
    ]
    3 => array:6 [▼
      "id" => 16
      "user_id" => 200000000003
      "title" => "BYTON推出首款智能电动车 2019年可以实现全面量产"
      "content_id" => 140000000380
      "content_type" => 14
      "save_time" => "2020-05-11T06:44:21.000000Z"
    ]
    4 => array:6 [▼
      "id" => 14
      "user_id" => 200000000003
      "title" => "TCL公布了其10系列智能手机的价格和规格"
      "content_id" => 140000002546
      "content_type" => 14
      "save_time" => "2020-05-11T06:37:13.000000Z"
    ]
    5 => array:6 [▼
      "id" => 8
      "user_id" => 200000000003
      "title" => "苹果意外在删除的支持视频中确认类似Tile的AirTag名称"
      "content_id" => 140000002534
      "content_type" => 14
      "save_time" => "2020-05-11T03:00:54.000000Z"
    ]
    ]  
    

    实现函数

    if(!function_exists('group_by_time')){
    function group_by_time($array){
        $curyear = date('Y');
        $list = [];
        foreach ($array as $k => $v) {
            if ($curyear == date('Y',strtotime($v['save_time']))) {
                $date = date('m月d日',strtotime($v['save_time']));
            } else {
                $date = date('Y年m月d日',strtotime($v['save_time']));
            }
            $list[$date][] = $v;
        }
        return $list;
    }
    

    }

    相关文章

      网友评论

          本文标题:PHP 实现以日期分组的浏览足迹【运用场景:电商项目=》我的足迹

          本文链接:https://www.haomeiwen.com/subject/qzngnhtx.html