PHP - Создать вложенный массив из данных MySQL - PullRequest
3 голосов
/ 25 февраля 2011

У меня есть некоторые данные, хранящиеся в таблице, например:

id  parent_id  name
1   0          Entry 1
2   0          Entry 2
3   0          Entry 3
4   1          Child of entry 1

Я хочу превратить их во вложенный массив, например, так:

array(
    array(
        'id' => 1,
        'parent_id' => 0,
        'name' => 'Entry 1',
        'children' => array(...)
    ),
    ...
);

В идеале, необходимоподдерживать бесконечное количество гнезд (дети с детьми).Настроена ли моя таблица для поддержки этого, если так, как бы я сгенерировал этот вид массива, используя данные в таблице?Если нет, то как мне настроить стол?

Ответы [ 2 ]

5 голосов
/ 25 февраля 2011

Здесь очень хорошее описание управления иерархическими данными в mysql: управление иерархическими данными Вот еще один хороший пример построения вложенных массивов: построение вложенных массивов

Вы можете подумать об использовании модели Nested Set.Если вы собираетесь запрашивать разные вещи, это лучше, чем модель смежности, которую вы используете прямо сейчас.

Надеюсь, это поможет.

0 голосов
/ 25 февраля 2011

У вас не будет иерархических данных из «простого» набора данных SQL, но вы можете написать функцию, которая будет делать это рекурсивно. Я не могу предоставить код в данный момент, но вы, вероятно, поняли идею.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...