我有一个数组,里面存的每一个都是一个年月日的日期的时间戳,类似如下$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未交费类似的就是这个意思,请问应该如何处理数组呢?
2 回答
largeQ
TA贡献2039条经验 获得超7个赞
上面那位朋友运行报了notice错误(数组越界),试试我的代码$data_arr=array(strtotime("2015-08-01"),strtotime("2015-08-03"),strtotime("2015-08-04"),strtotime("2015-08-05"),strtotime("2015-08-06"),strtotime("2015-08-07"),strtotime("2015-08-09"),strtotime("2015-08-10"),strtotime("2015-08-13"),strtotime("2015-08-14"),strtotime("2015-08-15"),strtotime("2015-08-19"),strtotime("2015-08-20"),strtotime("2015-08-22"),);array_push($data_arr,null);$start=null;for($i=1;$iif($data_arr[$i]==$data_arr[$i-1]+24*3600){ if(!$start){$start=$data_arr[$i-1];}}else{if($start){echodate("Y-m-d",$start)."到".date("Y-m-d",$data_arr[$i-1])."未付款\n";}else{echodate("Y-m-d",$data_arr[$i-1])."未付款\n";}$start=null;}}?>献丑了
富国沪深
TA贡献1790条经验 获得超9个赞
你的问题是一个数组里面保存着一些时间戳,你需要格式化一下这些数据对吧。我建议的方案:首先把时间戳转为具体日期年月日,分割年份,月份,日期出来组装好一个多维数组;然后日期间对比是否相邻,月份和年份对比则是最后一天和最早一天是否相邻,符合相邻条件的把数组连接起来组成新的数组,大概就这么一个思路,由于存在不同年不同月的情况,所以可能会复杂一点,大概需要写一个二次遍历才行,希望能帮到你…
添加回答
举报
0/150
提交
取消