为了账号安全,请及时绑定邮箱和手机立即绑定

php的数学题

php的数学题

qq_遁去的一_1 2019-04-13 08:37:07
我有一个数组,里面存的每一个都是一个年月日的日期的时间戳,类似如下$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;
}
}
?>
献丑了
                            
查看完整回答
反对 回复 2019-04-13
?
富国沪深

TA贡献1790条经验 获得超9个赞

你的问题是一个数组里面保存着一些时间戳,你需要格式化一下这些数据对吧。我建议的方案:首先把时间戳转为具体日期年月日,分割年份,月份,日期出来组装好一个多维数组;然后日期间对比是否相邻,月份和年份对比则是最后一天和最早一天是否相邻,符合相邻条件的把数组连接起来组成新的数组,大概就这么一个思路,由于存在不同年不同月的情况,所以可能会复杂一点,大概需要写一个二次遍历才行,希望能帮到你…
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 374 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信