PHP: en Boucle par le biais de tableau multidimensionnel et d'établir des relations parent-enfant entre les éléments de tableau de

Je suis en train d'élaborer un système de gestion de contenu et j'ai couru dans un problème avec enfant-parent relations d'articles dans le CMS.

Fondamentalement, j'ai un système qui permet de créer des pages et quand une page est créée, vous pouvez sélectionner une page parent pour les sous-navigation. C'est toute fine et dandy jusqu'à ce que j'essaie de générer de la navigation à partir de la DB.

Je ne suis pas sûr si une sorte de jointure serait mieux, mais je préfère à obtenir toutes les données dans un tableau et de manipuler le tableau avec php.

Mon tableau de résultats à partir de la DB est comme ceci:

Array
(
    [0] => Array
    (
        [id] => 27
        [name] => home
        [link] => home.html
        [parent] => 0
    )

    [1] => Array
    (
        [id] => 30
        [name] => about
        [link] => about.html
        [parent] => 27
    )
)

J'ai besoin de parcourir un tableau, comme ce qui peut avoir un nombre quelconque de navigation et en intelligence, et de les trier dans son les relations parent-enfant. J'ai été en mesure de le faire, mais un seul niveau de profondeur. Il doit gérer des enfants avec enfants avec enfants, etc. avec un nombre infini de couches et la sortie en HTML non ordonnée des listes imbriquées.

<ul>
  <li>
  <a>Nav</a>
     <ul>
        <li>
           <a>Subnav</a>
             <ul>
                 <li>
                    <a>Sub Sub nav</a>
                 </li>
             </ul>
        </li>
     </ul>
  <li>
<ul>

Etc. ...

Est-il quelque chose à propos de la génération des données, ce qui garantit que le parent de l'enfant des relations toujours de vous donner un arbre? Cyclique dépendances va ruiner votre journée sinon lorsque vous essayez d'afficher le "graph" des relations parent-enfant.

OriginalL'auteur Laurence | 2011-12-31