php créer un menu de navigation de tableau multidimensionnel dynamiquement

J'ai fait des recherches sur ce sujet, et n'était pas en mesure de trouver une réponse exacte. La plupart des questions/réponses sur ici concernant ce semble être inachevée. Si quelqu'un connaît une solution finale semblable à ma question, merci de me diriger dans cette direction!

Voici mon tableau:

Array
(
['home'] => Array
    (
        [0] => sub-home1
        [1] => sub-home2
    )

['about'] => Array
    (
        [0] => sub-about
        ['about2'] => Array
            (
                [0] => sub-sub-about
            )

    )

['staff'] => Array
    (
        [0] => sub-staff1
        [1] => sub-staff2
    )

['contact'] => contact
)

Et voici ce que je voudrais transformer en:

<ul>
    <li><a href="">home<a/>
        <ul>
            <li><a href="">sub-home1</a></li>
            <li><a href="">sub-home2</a></li>
        </ul>
    </li>
    <li><a href="">about<a/>
        <ul>
            <li><a href="">sub-about</a></li>
            <li><a href="">about2</a>
                <ul>
                    <li><a href="">sub-sub-about<a/></li>
                </ul>
            </li>
        </ul>
    </li>
    <li><a href="">staff<a/>
        <ul>
            <li><a href="">sub-staff1</a></li>
            <li><a href="">sub-staff2</a></li>
        </ul>
    </li>
    <li><a href="">contact<a/></li>
</ul>

Le tableau sera généré dynamiquement, mais aura une limite de 3 niveaux ex: sur->about2->sous-sous-sous-sujet. J'ai essayé d'aller sur cette question: PHP/MySQL Menu de Navigation, mais ils n'ont pas vraiment l'air de venir à une conclusion? Je suis familier avec foreach du laps de temps, et pour les boucles, mais je n'arrive pas à les envelopper ma tête autour de celui-ci.

EDIT: Mauricette, votre code fonctionne!

Je pense que ce dont vous avez besoin ici est une fonction récursive qui analyse les tableaux. Désolé je ne peux pas (sur le dessus de ma tête) donner un exemple, mais c'est CERTAINEMENT l'un des cas où la récursivité est nécessaire.
Ouais je vais essayer de trouver un bon exemple, pas beaucoup là-bas!
Vous souhaitez trouver un DFS (depth-first search) algorithme et de le mettre en œuvre à la sortie de la liste.

OriginalL'auteur klye_g | 2012-07-31