php的数学题
我有一个数组,里面存的每一个都是一个年月日的日期的时间戳,
类似如下
$data_arr = array(
strtotime("2015-08-01"),
strtotime("2015-08-02"),
strtotime("2015-08-03"),
strtotime("2015-08-04"),
strtotime("2015-08-05"),
strtotime("2015-08-07"),
strtotime("2015-08-09"),
strtotime("2015-08-10"),
strtotime("2015-08-13")
);
这里面存放的是一个用户某一天没有交费。
现在希望能展示成
2015-08-01 到 2015-08-05 未交费
2015-08-07 未交费
2015-08-09 到 2015-08-10 未交费
2015-08-13 未交费
类似的就是这个意思,
请问应该如何处理数组呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
上面那位朋友运行报了notice错误(数组越界),试试我的代码
献丑了
你的问题是一个数组里面保存着一些时间戳,你需要格式化一下这些数据对吧。我建议的方案:首先把时间戳转为具体日期年月日,分割年份,月份,日期出来组装好一个多维数组;然后日期间对比是否相邻,月份和年份对比则是最后一天和最早一天是否相邻,符合相邻条件的把数组连接起来组成新的数组,大概就这么一个思路,由于存在不同年不同月的情况,所以可能会复杂一点,大概需要写一个二次遍历才行,希望能帮到你…
先排序,再遍历一遍
先把时间全部转化成unix时间戳,然后对数组做一次数字升序排序.然后设置起始时间后,不断跟后一个数来比对,是否相差1天,如果是则不断更新对应的结束时间,如果否则设置结束时间,并另外设置一个新的起始时间,你复制下我的代码跑下,就明白了.顺带说下,这段代码至少要php5.4以上的版本才能跑通,短数组语法只从5.4开始支持.望采纳
前面一位朋友的程序运行了下,结果不是题主要的那种形式。请看我的程序。
运行结果