Как разбить наборы результатов на меньшие подмножества для подытога / иерархических целей в 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
...
)
)
...
)
)
Есть ли способ сделать это рекурсивно или таким образом, чтобы, независимо от того, сколько существует подразделений, я всегда получал тот тип многомерного массива, который мне нужен?
Спасибо.