手机版

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

时间:2021-09-05 来源:互联网 编辑:宝哥软件园 浏览:

现有测试数据如下,需要达到下图所示的效果:

array(4){[0]=array(6){[' visit _ id ']=int(127)[' goods _ id ']=int(16)[' visit time ']=int(1494399935)[' goods _ name ']=string(53)OPPO R9s全网通4G 64G双卡双待手机玫瑰金'[' shop _ price ']=string(6)' 500.00 ' }[1]=array(6){[' visit '=array(6){[' visit _ id ']=int(123)[' goods _ id ']=int(27)[' visit time ']=int(149439903)[' goods _ name ']=string(85)'爱他白金版的Aptamil婴幼儿配方奶粉3 900g(欧洲进口)'[' shop _ price ']=string(6)' 329.00 ' }[3]=array(6){[' visit _ id ']=int(17) ['goods_name']=string(21)'一张欢乐谷免费票'[' shop _ price ']=string(5)' 50.00 ' } }

我认为这段代码在实现之前不需要O(n)或更高的复杂度。仔细想想,其实php数组的底层是通过hash实现的。我们如何简单地使用这个特性来将复杂性降低到O(1)?

给我看看代码:

/*浏览记录按日期分组*/功能组访问($ visit){ $ cur year=date(' y ');$ visit _ list=[];foreach($ visit as $ v){ if($ cur year==date(' y ',$ v[' visit time ']){ $ date=date(' m月d日',$ v[' visit time ']);} else {$date=date('Y年,m月,d日',$ v[' visit time ']);} $ visit _ list[$ date][]=$ v;}返回$ visit _ list}注意:$visit是上面开头的测试数据,函数也对用户体验做了一些优化。比如你的浏览记录总是显示今年的年份,是不是觉得有点多余,所以如果是今年,就应该隐藏年份,其他年份还是会显示。否则代码会更简洁。

好的,以上测试数据通过此功能后,打印出返回值,包括:

array(2){[' 05 ' 5月10日']=array(3){[0]=array(6){[' visit _ id ']=int(127)[' goods _ id ']=int(16)[' visit time ']=int(int=string(53)' OPPO R9s全网通4G 64G双卡双待手机升金'[' shop _ price ']=string(6)' 500.00 ' }[1]=array(6){[' visit _ id ' '=string(76)' Siemens/Siemens ka92nv 09 ti双门冰箱旗舰变频型号'[' shop _ price ']=string(7)' 4000.00 ' }[=array(6){[' visit _ id ']=int(123)[' goods _ id ']=int(27)[' visit time ']=int(14943999903)[' goods _ name ']=string(85)Aitamei白金Aptamil婴儿配方奶粉3(适用)

以上是边肖介绍的PHP实现的浏览记录,按日期分组,希望对大家有所帮助。如果你有任何问题,请给我留言,边肖会及时回复你。非常感谢您对我们网站的支持!

版权声明:PHP实现了浏览记录和按日期分组是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。