2012-05-15 50 views
-3

我有一組日期:from和to。 即:將日期數組轉換爲日期範圍

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

有什麼建議?

+0

對不起,但輸出數組是如何精確計算的? – Songo

+0

作爲日期範圍從輸入數組。 :-) – gmaliar

+0

是的,我得到這部分:D但我沒有看到他們之間的關係?例如, – Songo

回答

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現在只包含日期範圍。