Php 数组中的日期分组
我有一个包含许多日期的数组。这些日期是被动的。如果两者之间的空闲时间超过8天,我需要得到这些日期的相反值。我必须将这些相反的日期处理为天数、开始日期和结束日期 示例数组Php 数组中的日期分组,php,arrays,date,Php,Arrays,Date,我有一个包含许多日期的数组。这些日期是被动的。如果两者之间的空闲时间超过8天,我需要得到这些日期的相反值。我必须将这些相反的日期处理为天数、开始日期和结束日期 示例数组 Array ( [0] => 17-05-2020 [1] => 18-05-2020 [2] => 19-05-2020 [3] => 20-05-2020 [4] => 28-05-2020 [5] => 29-05-2020 [6]
Array
(
[0] => 17-05-2020
[1] => 18-05-2020
[2] => 19-05-2020
[3] => 20-05-2020
[4] => 28-05-2020
[5] => 29-05-2020
[6] => 30-05-2020
[7] => 02-06-2020
[8] => 03-06-2020
[9] => 10-07-2020
[10] => 10-07-2020
[11] => 11-07-2020
[12] => 12-07-2020
[13] => 13-07-2020
[14] => 20-07-2020
[15] => 21-07-2020
[16] => 25-07-2020
[17] => 26-07-2020
[18] => 27-07-2020
)
我想要的结果
Array
(
[0] => Array
(
[0] => 30-05-2020
[1] => 02-06-2020
[2] => 3
)
[1] => Array
(
[0] => 13-07-2020
[1] => 20-07-2020
[2] => 7
)
[2] => Array
(
[0] => 21-07-2020
[1] => 25-07-2020
[2] => 4
)
)
我的理解是,您希望得到日期之间的差异,如果差异
=8
,那么您希望这些日期在单独的数组中,并带有天数计数
你可以这样做:
$finalArray = [];
foreach($array as $key=>$arr){
if(isset($array[$key+1])){
$diff = round((strtotime($array[$key+1]) - strtotime($arr)) / (60 * 60 * 24));
if(($diff < 8) and ($diff > 1)){
$finalArray[] = array(
$arr,
$array[$key+1],
$diff
);
}
}
}
print_r($finalArray);
$finalArray=[];
foreach($key=>$arr的数组){
if(isset($array[$key+1])){
$diff=round((strotime($key+1数组))-strotime($arr))/(60*60*24));
如果($diff<8)和($diff>1)){
$finalArray[]=数组(
$arr,
$array[$key+1],
$diff
);
}
}
}
打印费($finalArray);
输出:到目前为止您尝试了什么?在你的问题中添加你的代码尝试,否则它似乎是请为我写代码免费的那种帖子我已经尝试了很多方法。我尝试并删除了很多代码。我对PHP语言非常业余,比如日期。这些是我最后一次处理输出的代码:通过编辑ITA将这些代码发布到您的问题中,并根据输入数据和逻辑设置所需输出的格式。因为它似乎不匹配,所以我稍后将执行逻辑操作。所以我不想在内容中添加代码。代码可能会混淆,因为有数据库操作和其他数据。非常感谢您的帮助,我非常感谢。我的英语不好,真是太糟糕了。我想知道为什么只有那些日期会来。那些日期也会到来,有1,2,3。。。天差也一样:-<代码>我想要的输出是这样发生的。非常感谢你!