Intereting Posts
Корзина WooCommerce – проверка категорий условных элементов Круговая зависимость. Инъекция объектов, которые напрямую зависят друг от друга Regex соответствует двойным фигурным скобкам Как загрузить изображение в базу данных с помощью php-скрипта? Изучение моделирования данных (как объединить разумную базу данных) Я получаю Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException Привязка параметра построителя запроса Laravel Внедрить приложение Silex $ в мой пользовательский класс Проверка Laravel, если запись существует Как создать новое предупреждение Google, доставляющее его для подачи, используя PHP cURL Как использовать $ db из другого .php для другого класса .php с помощью OOP? Почему функция автозаполнения Internet Explorer отключена для всех html-форм на моем веб-сайте? Загрузка файла силы в php Внутренняя ошибка сервера Laravel 5 как получить название действия маршрута?

PHP. Создайте вложенный массив из данных MySQL.

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

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, но вы можете написать функцию, которая будет делать это рекурсивно. На данный момент я не могу предоставить код, но вы, вероятно, поняли.