@prukon
Начинающий разработчик

Как сгруппировать массив дат по годам и месяцам?

Имеется массив $date:

Array
(
    [0] => 2018-07-01
    [1] => 2018-07-02
    [2] => 2018-08-10
    [3] => 2018-08-15
    [4] => 2018-08-21
    [5] => 2019-01-02
    [6] => 2019-01-03
    [7] => 2019-11-04
)

Необходимо пересобрать его таким образом, чтобы на фронт возвращался JSON в в следующем формате:

newdate = {
            2018:{
                7:[1, 2],
                8:[10,15,21]
            },
            2019:{
                1:[2,3],
                11:[4]
            }
        };

Обратите внимание на формат даты в JSON, а именно на то, что даты в JSON должны возвращаться в формате "7", а не "07".
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
0xD34F
@0xD34F
$grouped = [];

foreach ($date as $d) {
  $parts = explode('-', $d);
  $grouped[$parts[0]][intval($parts[1])][] = intval($parts[2]);
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы