PHP crea un menú de navegación desde una matriz multidimensional dinámicamente

Hice una investigación sobre esto y no pude encontrar una respuesta exacta. La mayoría de las preguntas / respuestas aquí relacionadas con esto parecen estar incompletas. Si alguien sabe de una solución terminada similar a mi pregunta, ¡por favor apúnteme en esa dirección!

Aquí está mi matriz:

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
)

Y aquí es en lo que me gustaría convertirlo 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>

La matriz se generará dinámicamente, pero tendrá un límite de 3 niveles, por ejemplo: aproximadamente-> aproximadamente2-> sub-sub-acerca. Intenté salir de esta pregunta:Menú de navegación PHP / MySQL ¿Pero realmente no parecen llegar a una conclusión? Estoy familiarizado con los rencores y bucles de Foreach pero parece que no puedo envolver mi cabeza en torno a este.

EDIT: Enzino, tu código funciona!

Respuestas a la pregunta(4)

Su respuesta a la pregunta