2012-02-10 96 views
6

我有一個數組,它返回一個請求的一系列日期,我想根據一個變量分割月份或年份。當前陣列的根據月份或年份拆分日期陣列

實施例:

array(4) { 

[0]=> string(10) "2012-02-01" 

[1]=> string(10) "2012-02-02" 

[2]=> string(10) "2011-02-03" 

[3]=> string(10) "2011-03-04" 

[4]=> string(10) "2011-04-05" 

} 

爲了產生在「月」一個谷歌的圖表或「年」視圖我需要分開打破這種陣列和基團一起的「年」或「月」基於用戶的喜好,這將是一個變量。

的需要返回什麼我

例子,如果在「年視圖」

array(2) { 

[0]=> Array(2) { 

     [0]=> string(10) "2012-02-01" 

     [1]=> string(10) "2012-02-02" 

} 

[1]=> Array(3) { 

     [0]=> string(10) "2011-02-03" 

     [1]=> string(10) "2011-03-14" 

     [2]=> string(10) "2011-04-18" 

} 

} 

不是100%肯定,如果這是一個聲音數組,但我需要能夠在每個數組做「的foreach」語句一組日期,所以我可以將所有的值加起來(我需要的是函數的日期去獲得值),並返回一個總值和年份,因爲他們被分組,所以我會爆炸在foreach語句中的最後一個數組的年份。

這裏是相同的預期結果,但在「月」視圖模式

array(3) { 

[0]=> Array(3) { 

     [0]=> string(10) "2012-02-01" 

     [1]=> string(10) "2012-02-02" 

     [2]=> string(10) "2011-02-03" 

} 

[1]=> Array(1) { 



     [1]=> string(10) "2011-03-14" 

} 

[2]=> Array(1) { 

     [1]=> string(10) "2011-04-18" 

} 

} 

任何幫助將不勝感激!我似乎無法在保持一切完好的情況下找到解決方案。

回答

11

是這樣的嗎?

$years = Array(); 
$months = Array(); 
foreach($dates as $d) { 
    list($y,$m) = explode("-",$d); 
    $years[$y][] = $d; 
    $months[$y."-".$m][] = $d; 
} 
$years = array_values($years); 
$months = array_values($months); 

var_dump($years,$months); 
相關問題