PHP怎么输出一个数组中连续的日期?
$dates = ['2018-10-09',
'2018-10-10',
'2018-10-11',
'2018-10-13',
'2018-10-15',
'2018-10-31',
'2018-11-01',
'2018-11-02'
];
比如这样 怎么把数组中每个连续的日期又再放到一个数组中,实现的结果是这样
$dates = [
['2018-10-09',
'2018-10-10',
'2018-10-11'],
'2018-10-13',
'2018-10-15',
['2018-10-31',
'2018-11-01',
'2018-11-02']
]; 已知你的数据项是从小到大,循环判断项目X与X+1的大小关系,如果相邻新字符串string=string.",".(x+1);,如果不相邻,则新字符串string=string."】,【".x+1;,然后新字符串string转数组。 难道没有数组切片,需要遍历才能得到 前面加一等于后面的就,不等于就不组到一块 <?php
$dates = [
'2018-10-09',
'2018-10-10',
'2018-10-11',
'2018-10-13',
'2018-10-15',
'2018-10-31',
'2018-11-01',
'2018-11-02'
];
$data=[];//新数组
$differ =60*60*24; //一天最大时间
$num = 0; //新二位数组坐标
foreach ($dates as $key => $value) {
if($key == 0) { //首元素
$data[$num][]= $value;
} else {//不是首元素
//strtotime字符串转换时间
if((strtotime($value)-strtotime($dates[$key-1]))<=$differ) { //判断当前数组元素值 和 上个数组元素值是否是否差 一天
$data[$num][]= $value;
} else {
$num++;
$data[$num][]= $value;
}
}
}
echo "<pre>";
var_dump($data);
echo "</pre>"
?> 运行结果 Mr阿狸先森 发表于 2021-3-16 13:16
初始化数组再做一次升序排列就更好了
页:
[1]