将日期数组转换为日期范围

时间:2012-05-15 12:33:30

标签: php

我有一系列日期:从和到。 即:

array(
    [0] => array('from' => '19-01-2000' 'to' => '20-01-2000')
    [1] => array('from' => '20-01-2000' 'to' => '21-01-2000')
    [2] => array('from' => '21-01-2000' 'to' => '22-01-2000')
    [3] => array('from' => '23-01-2000' 'to' => '24-01-2000')
    [4] => array('from' => '24-01-2000' 'to' => '25-01-2000')
)

我试图找到一种方法来转换创建一个只有日期范围的新数组, 即:

array(
    [0] => array('from' => '19-01-2000' 'to' => '22-01-2000')
    [1] => array('from' => '23-01-2000' 'to' => '25-01-2000')
)

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我已经通过以下方式解决了这个问题。

    $new_array = array();
    $j = 0;
    $i = 0;
    $flag = true;
    $range = false;
    while ($flag) {
        if ($array[$j+1] == null) {
            $flag = false;
        }
        if ($array[$j]['date_to'] == $array[$j+1]['date_from']) {
            if (!$range) {
                $new_array[$i] = $array[$j];
                $j++;
                $range = true;
            }
            else {
                $j++;
            }
        }
        else {
            if (!$range) {
                $new_array[$i] = $array[$j];
            }
            else {
                $new_array[$i]['date_to'] = $array[$j]['date_to'];
                $range = false; 
            }
            $i++;
            $j++;
        }
    }

$ new_array现在只包含日期范围。