2012-02-10 119 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);