Intereting Posts
Вставьте проверку запроса, если запись существует. Если нет, добавьте ее Как отправить или присвоить значение переменной JQuery переменной php? Как получить элементы Yox2.0 CheckboxList, проверенные как загружается форма? Могу ли я просто выбрать один столбец в MYSQL вместо всех, чтобы сделать его быстрее? Несколько экземпляров PHP-скрипта не будут загружаться одновременно в одном браузере с одного и того же URL-адреса Как эхо значения ассоциативного массива, возвращаемого функцией как преобразовать новую строку и html-код в htmlspecialchars в php Правильный способ хранения часового пояса в базе данных? Импортировать CSV-файл непосредственно в базу данных MySQL PHP Curl HMAC-SHA1 AngularJS | Как отправить данные Json в базу данных в Codeigniter Веб-приложение Android RESTful с использованием Zend Framework Как расшифровать зашифрованную строку php с помощью Android? Как сделать разбиение на страницы из нескольких массивов и вычислить общее количество? .htaccess защитить пароль, но разрешить типы файлов изображений

Разделить массив дат в зависимости от месяца или года

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

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

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" } } 

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

Что-то вроде этого?

 $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);