Разделить массив дат на основе месяца или года - PullRequest
6 голосов
/ 10 февраля 2012

У меня есть массив, который возвращает запрошенный ряд дат, которые я хотел бы разбить на месяц или год на основе переменной.

Пример текущего массива:

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"

}

Чтобы создать диаграмму Google в представлении «Месяц» или «Год», мне нужно разбить этот массив на части и сгруппировать «Годы» или «Месяцы» на основе предпочтений пользователей, которые будут находиться в переменной.

Пример того, что мне нужно вернуть, если в "Year View"

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"

} 

}

Любая помощь будет принята с благодарностью! Я просто не могу найти решение, сохраняя все в целости.

1 Ответ

11 голосов
/ 10 февраля 2012

Как то так?

$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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...