У меня есть массив, который возвращает запрошенную серию дат, которые я хотел бы разбить на месяц или год на основе переменной.
Пример текущего массива:
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);