PHP: цикл по многомерному массиву и установление родительско-дочерних отношений между элементами массива
Я занимаюсь разработкой системы управления контентом и столкнулся с проблемой дочерних и родительских отношений элементов в CMS.
В основном у меня есть система, которая может создавать страницы, и когда страница создается, вы можете выбрать родительскую страницу для суб-навигации. Это все нормально и модно, пока я не попытаюсь сгенерировать навигацию из БД.
Я не уверен, что какое-то объединение будет лучше, но я предпочитаю получать все данные в массиве и манипулировать массивом с помощью php.
Мой массив результатов из БД выглядит так:
Array
(
[0] => Array
(
[id] => 27
[name] => home
[link] => home.html
[parent] => 0
)
[1] => Array
(
[id] => 30
[name] => about
[link] => about.html
[parent] => 27
)
)
Мне нужно перебрать массив, подобный этому, который может иметь любое количество переходов, и разумно отсортировать его по родительским дочерним отношениям. Я смог сделать это, но только на один уровень глубиной. Он должен управлять детьми с детьми с детьми и т. Д. С бесконечным числом слоев и выводить его в неупорядоченные вложенные списки HTML.
<ul>
<li>
<a>Nav</a>
<ul>
<li>
<a>Subnav</a>
<ul>
<li>
<a>Sub Sub nav</a>
</li>
</ul>
</li>
</ul>
<li>
<ul>
И т.д. ...