Я выбираю из таблицы данные, сгруппированные по одному из полей. Их нужно отобразить в виде дерева (массива), где ключами выступают значения поля группировки, а элементами — массивы значений для каждой из групп. Нужно это для дальнейшего преобразования в JSON и отправки в браузер.
Это примерные данные:
"Western" "CA" "California"
"Western" "AZ" "Arizona"
"Eastern" "FL" "Florida"
Это JSON, который должен получиться в итоге. Я сначала делаю массив, а потом преобразую его в JSON стандартной функцией json_encode().
{
more: false,
results: [
{ text: "Western", children: [
{ id: "CA", text: "California" },
{ id: "AZ", text: "Arizona" }
] },
{ text: "Eastern", children: [
{ id: "FL", text: "Florida" }
] }
]
}
Есть ли функции в ядре или идеологически верные алгоритмы преобразования плоского массива в дерево, или здесь нужно просто перебрать данные последовательно и расставить элементы по массиву в необходимом порядке?