4

次のような日付の配列があります。

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)

2 つの配列だけではないことを指定する必要があります。連続していない日付にはそれぞれ独自の配列があり、連続した日付にはそれぞれ独自の配列があります。

4

1 に答える 1

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
        )

)
于 2013-08-15T12:33:47.957 に答える