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

2025-05-29 0 52

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30
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"

}

}

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

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

show me the code:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15
/* 浏览记录日期分组 */

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

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

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34
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 实现浏览记录并按日期分组,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对快网idc网站的支持!

原文链接:http://www.cnblogs.com/hackbee/p/6838089.html

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 PHP 实现浏览记录并按日期分组 https://www.kuaiidc.com/94470.html

相关文章

发表评论
暂无评论