У меня есть некоторые данные, хранящиеся в таблице, например:
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(...) ), ... );
В идеале, ему нужно будет поддерживать бесконечное количество гнездования (дети с детьми). Установлена ли моя таблица для поддержки этого, если да, то каким образом я могу сгенерировать такой массив, используя данные в таблице? Если нет, как мне настроить таблицу?
Здесь очень хорошее описание управления иерархическими данными в mysql: управление иерархическими данными. Вот еще один хороший пример построения вложенных массивов: построение вложенных массивов
Вы можете подумать об использовании модели вложенного набора. Если вы собираетесь запрашивать материал mutch, это лучше, чем модель смежности, которую вы используете прямо сейчас.
Надеюсь, это поможет.
У вас не будет иерархических данных из «простого» набора данных SQL, но вы можете написать функцию, которая будет делать это рекурсивно. На данный момент я не могу предоставить код, но вы, вероятно, поняли.