-3

私は日付の配列を持っています:fromとto'sie:

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')
)

助言がありますか?

4

1 に答える 1

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 には日付範囲のみが含まれるようになりました。

于 2012-05-15T13:27:19.110 に答える