当前位置: 首页 > 编程笔记 >

PHP 实现浏览记录并按日期分组

羊舌高爽
2023-03-14
本文向大家介绍PHP 实现浏览记录并按日期分组,包括了PHP 实现浏览记录并按日期分组的使用技巧和注意事项,需要的朋友参考一下

现有测试数据如下,要求实现如下图中的效果:

array(4) {
 [0] => array(6) {
 ["visit_id"] => int(127)
 ["goods_id"] => int(16)
 ["visittime"] => int(1494399935)
 ["goods_name"] => string(53) "OPPO R9s 全网通4G+64G 双卡双待手机 玫瑰金"
 ["shop_price"] => string(6) "500.00"
 }
 [1] => array(6) {
 ["visit_id"] => int(124)
 ["goods_id"] => int(13)
 ["visittime"] => int(1494399921)
 ["goods_name"] => string(76) "SIEMENS/西门子 KA92NV09TI双开门家用对开门电冰箱变频旗舰款"
 ["shop_price"] => string(7) "4000.00"
 }
 [2] => array(6) {
 ["visit_id"] => int(123)
 ["goods_id"] => int(27)
 ["visittime"] => int(1494399903)
 ["goods_name"] => string(85) "爱他美白金版Aptamil 幼儿配方奶粉3段(12-36个月适用)900g(欧洲进口)"
 ["shop_price"] => string(6) "329.00"
 }
 [3] => array(6) {
 ["visit_id"] => int(120)
 ["goods_id"] => int(26)
 ["visittime"] => int(1494224263)
 ["goods_name"] => string(21) "欢乐谷免票一张"
 ["shop_price"] => string(5) "50.00"
 }
}

还没实现之前我想这个代码不知道要O(n)呢还是更高的复杂度才能实现,细想一下,其实php的数组底层就是哈希实现的,如何简单利用这个特性使复杂度降到O(1)呢?

show me the code:

/* 浏览记录按日期分组 */
function groupVisit($visit)
{
 $curyear = date('Y');
 $visit_list = [];
 foreach ($visit as $v) {
  if ($curyear == date('Y', $v['visittime'])) {
   $date = date('m月d日', $v['visittime']);
  } else {
   $date = date('Y年m月d日', $v['visittime']);
  }
  $visit_list[$date][] = $v;
 }
 return $visit_list;
}

说明:入参 $visit 就是上面一开始的测试数据,函数中还对用户体验做了一些优化,比如,你的浏览记录中总是显示出今年的年份,是不是感觉有点冗余,所以如果是本年份的话,年份就要隐藏起来,其他年份还是照样显示出来。不然代码会更加简洁。

好了上面的测试数据经过该函数之后,再把返回值打印出来,有:

array(2) {
 ["05月10日"] => array(3) {
 [0] => array(6) {
  ["visit_id"] => int(127)
  ["goods_id"] => int(16)
  ["visittime"] => int(1494399935)
  ["goods_name"] => string(53) "OPPO R9s 全网通4G+64G 双卡双待手机 玫瑰金"
  ["shop_price"] => string(6) "500.00"
 }
 [1] => array(6) {
  ["visit_id"] => int(124)
  ["goods_id"] => int(13)
  ["visittime"] => int(1494399921)
  ["goods_name"] => string(76) "SIEMENS/西门子 KA92NV09TI双开门家用对开门电冰箱变频旗舰款"
  ["shop_price"] => string(7) "4000.00"
 }
 [2] => array(6) {
  ["visit_id"] => int(123)
  ["goods_id"] => int(27)
  ["visittime"] => int(1494399903)
  ["goods_name"] => string(85) "爱他美白金版Aptamil 幼儿配方奶粉3段(12-36个月适用)900g(欧洲进口)"
  ["shop_price"] => string(6) "329.00"
 }
 }
 ["05月08日"] => array(1) {
 [0] => array(6) {
  ["visit_id"] => int(120)
  ["goods_id"] => int(26)
  ["visittime"] => int(1494224263)
  ["goods_name"] => string(21) "欢乐谷免票一张"
  ["shop_price"] => string(5) "50.00"
 }
 }
}

对的,这正是我想要的效果。

以上所述是小编给大家介绍的PHP 实现浏览记录并按日期分组,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!

 类似资料:
  • 本文向大家介绍django实现日志按日期分割,包括了django实现日志按日期分割的使用技巧和注意事项,需要的朋友参考一下 settings文件中配置: 项目启动时,win系统下,添加 --noreload :python manage.py runserver --noreload ,防止PermissionError报错; pycharm使用时,在此添加参数 补充知识:logback输出日志:

  • 本文向大家介绍php浏览历史记录的方法,包括了php浏览历史记录的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php浏览历史记录的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的php程序设计有所帮助。

  • 本文向大家介绍PHP 记录访客的浏览信息方法,包括了PHP 记录访客的浏览信息方法的使用技巧和注意事项,需要的朋友参考一下 可以记录访客的地理位置,操作系统,浏览器,IP,时间和访问的文件。 1.首先创建一个comm_function.php文件: 2.在别的文件引入这个comm_function.php 以上这篇PHP 记录访客的浏览信息方法就是小编分享给大家的全部内容了,希望能给大家一个参考,

  • 本文向大家介绍Python实时监控网站浏览记录实现过程详解,包括了Python实时监控网站浏览记录实现过程详解的使用技巧和注意事项,需要的朋友参考一下 需求: (1) 获取你对象chrome前一天的浏览记录中的所有网址(url)和访问时间,并存在一个txt文件中 (2)将这个txt文件发送给指定的邮箱地址(你的邮箱) (3)建立例行任务,每天定时自动完成这些操作,你就可以通过邮件查看你对象每天看啥

  • 问题内容: 我有一个可能每天运行几次的应用程序。每次运行都会生成写入表的数据,以报告发生的事件。主报告表如下所示: 我可以说有两次运行,但是我想要一种能够查询日期范围(运行过程的次数)的方法。我想查询一个查询,该查询导致进程开始的时间和组中的文件数。这种查询可以让我了解我想要的东西,因为我可以看到什么日期和时间以及运行了多少文件,但不完全是我想要的。例如,它不能适应从8:58到9:04的运行。例如

  • 问题内容: 我有一个类似于以下的模型: 我想查询数据库以获取按天分组的场所的评论总数。MySQL查询为: 在Django中完成此操作的最佳方法是什么?我可以用 并在视图中解析结果,但这对我来说似乎不对。 问题答案: 这应该可以工作(使用与你使用的相同的MySQL特定功能):