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


Posted in PHP onMay 11, 2017

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

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:

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

PHP 相关文章推荐
php在线生成ico文件的代码
Oct 09 PHP
php下连接mssql2005的代码
Jan 17 PHP
11个PHP 分页脚本推荐
Aug 15 PHP
解析CI即CodeIgniter框架在Nginx下的重写规则
Jun 03 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
Oct 19 PHP
PHP在线书签系统分享
Jan 04 PHP
php中的常用魔术方法汇总
Feb 14 PHP
PHP实现无限分类的实现方法
Nov 14 PHP
php通过pecl方式安装扩展的实例讲解
Feb 02 PHP
PHP模糊查询技术实例分析【附源码下载】
Mar 07 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 PHP
PHP执行linux命令6个函数代码实例
Nov 24 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 #PHP
使用WAMP搭建PHP本地开发环境
May 10 #PHP
thinkPHP5 tablib标签库自定义方法详解
May 10 #PHP
PHP实现获取第一个中文首字母并进行排序的方法
May 09 #PHP
php7 安装yar 生成docker镜像
May 09 #PHP
php简单生成一组与多组随机字符串的方法
May 09 #PHP
PHP实现上传多图即时显示与即时删除的方法
May 09 #PHP
You might like
汉字转化为拼音(php版)
2006/10/09 PHP
非集成环境的php运行环境(Apache配置、Mysql)搭建安装图文教程
2016/04/12 PHP
PHP的Trait机制原理与用法分析
2019/10/18 PHP
JScript中的"this"关键字使用方式补充材料
2007/03/08 Javascript
js调用webservice中的方法实现思路及代码
2013/02/25 Javascript
jquery图片不完全按比例自动缩小的简单代码
2013/07/29 Javascript
jQuery代码实现发展历程时间轴特效
2015/07/30 Javascript
JS中数组重排序方法
2016/11/11 Javascript
Vue自定义指令介绍(2)
2016/12/08 Javascript
jquery事件与绑定事件
2017/03/16 Javascript
关于Stream和Buffer的相互转换详解
2017/07/26 Javascript
JavaScript基础之流程控制语句的用法
2017/08/31 Javascript
Js利用console计算代码运行时间的方法示例
2017/09/24 Javascript
js实现通过开始结束控制的计时器
2019/02/25 Javascript
基于Node的Axure文件在线预览的实现代码
2019/08/28 Javascript
Vue 中使用富文本编译器wangEditor3的方法
2019/09/26 Javascript
Vue实现附件上传功能
2020/05/28 Javascript
JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码
2020/12/01 Javascript
[01:10]DOTA2亚洲邀请赛 征战号角响彻全场
2015/01/06 DOTA
[58:23]LGD vs TNC 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python判断字符串是否包含子字符串的方法
2015/03/24 Python
仅用50行代码实现一个Python编写的计算器的教程
2015/04/17 Python
Python中线程编程之threading模块的使用详解
2015/06/23 Python
Python爬虫框架Scrapy实例代码
2018/03/04 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
python 并发编程 多路复用IO模型详解
2019/08/20 Python
使用Keras预训练好的模型进行目标类别预测详解
2020/06/27 Python
Django url 路由匹配过程详解
2021/01/22 Python
美国著名的女性内衣零售商:Frederick’s of Hollywood
2018/02/24 全球购物
意大利在线高尔夫商店:Online Golf
2021/03/09 全球购物
UNOde50美国官网:西班牙珠宝品牌
2020/08/15 全球购物
室内设计专业个人的自我评价
2013/12/18 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
华清池导游词
2015/02/02 职场文书
倡议书范文大全
2015/04/28 职场文书
Python字典和列表性能之间的比较
2021/06/07 Python