PHP: как сделать из «плоского» mysql result set массив-дерево?

Я выбираю из таблицы данные, сгруппированные по одному из полей. Их нужно отобразить в виде дерева (массива), где ключами выступают значения поля группировки, а элементами — массивы значений для каждой из групп. Нужно это для дальнейшего преобразования в 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" }
        ] }
    ]
}


Есть ли функции в ядре или идеологически верные алгоритмы преобразования плоского массива в дерево, или здесь нужно просто перебрать данные последовательно и расставить элементы по массиву в необходимом порядке?
  • Вопрос задан
  • 2760 просмотров
Решения вопроса 1
disc
@disc
веб-разработчик
Сформируйте массив со своим форматом используя foreach например.
Уверен, что готово из коробки ничего нет.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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