根据月份或年份拆分日期数组

时间:2012-02-10 18:49:52

标签: php arrays foreach

我有一个数组,它返回一个请求的日期系列,我希望根据变量将其分为月份或年份。

当前数组示例:

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"每个数组日期的语句,所以我可以添加所有的值(我需要的是函数的日期去获取值)并返回一个总值和年份,这些都是相同的,因为它们被分组并且我&# 39; ll只是在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"

} 

}

任何帮助将不胜感激!我似乎无法在保持一切完整的同时找到解决方案。

1 个答案:

答案 0 :(得分: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);