我有一系列日期看起来像这样:
Array (
[0] => 08/20/2013
[1] => 08/21/2013
[2] => 08/22/2013
[3] => 08/23/2013
[4] => 08/26/2013
)
它总是会有所不同,具体取决于用户选择的日期,例如,让我们使用这个。
我需要做的是找出一种将数组分成连续日期和非连续日期的方法。
所以最后我应该有:
Array (
[0] => 08/20/2013
[1] => 08/21/2013
[2] => 08/22/2013
[3] => 08/23/2013
)
Array ([4] => 08/26/2013)
我应该指定它不仅仅是两个数组。非连续日期每个都有自己的数组,连续日期各自都在自己的数组中。
答案 0 :(得分:3)
使用$arr
代表您的数组:
usort($arr, function ($a, $b){
return strtotime($a) - strtotime($b);
});
$out = array();
$last = 0;
$dex = -1;
foreach ($arr as $key => $value){
$current = strtotime($value);
if ($current - $last > 86400) $dex++;
$out[$dex][] = $value;
$last = $current;
}
print_r($out);
输出:
Array
(
[0] => Array
(
[0] => 08/20/2013
[1] => 08/21/2013
[2] => 08/22/2013
[3] => 08/23/2013
)
[1] => Array
(
[0] => 08/26/2013
)
)