php cria menu de navegação a partir de matriz multidimensional dinamicamente

Eu fiz uma pesquisa sobre isso e não consegui encontrar uma resposta exata. A maioria das perguntas / respostas aqui relacionadas a isso parece estar inacabada. Se alguém souber de uma solução finalizada semelhante à minha pergunta, por favor me aponte nessa direção!

Aqui está minha 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
)

E aqui está o que eu gostaria de transformar em:

<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>

O array será gerado dinamicamente, mas terá um limite de 3 níveis ex: about-> about2-> sub-sub-about. Eu tentei sair dessa questão:Menu de Navegação PHP / MySQL mas eles realmente não parecem chegar a uma conclusão? Eu estou familiarizado com os whiles foreach e loops, mas eu simplesmente não consigo envolver minha cabeça em torno deste.

EDIT: Enzino, seu código funciona!

questionAnswers(4)

yourAnswerToTheQuestion