Как разбить наборы результатов на меньшие подмножества для подытога / иерархических целей в PHP?

У меня есть несколько довольно значительных наборов результатов, возвращаемых из БД MySQL, которые мне иногда нужно разбивать на меньшие наборы для любого из них:

  • Сложение чисел в подмножествах для целей подытога; или же
  • Для создания иерархической таблицы.

Сложность состоит в том, что мне иногда нужно разделять результаты, полученные более одного раза, и количество подразделений может изменяться в каждой таблице.
Например, мне может потребоваться разбить результаты по годам, а затем по месяцам, чтобы получить промежуточные итоги для каждой комбинации год / месяц.

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

array(
  'divider' => 'year',
  'sets' => array(
    [0] => array(
      'divider' => 'month',
      'sets' => array(
        [0] => array(), //Row returned from DB
        [1] => array(), //Row returned from DB
        [2] => array(), //Row returned from DB
        ...
      )
    ),
    [1] => array(
      'divider' => 'month',
      'sets' => array(
        [0] => array(), //Row returned from DB
        [1] => array(), //Row returned from DB
        [2] => array(), //Row returned from DB
        ...
      )
    )
    ...
  )
)

Есть ли способ сделать это рекурсивно или таким образом, чтобы, независимо от того, сколько существует подразделений, я всегда получал тот тип многомерного массива, который мне нужен?

Спасибо.

0 ответов

Другие вопросы по тегам