¿Hay una manera de recorrer una matriz multidimensional sin saber su profundidad?

Hasta ahora, si tengo que recorrer una matriz multidimensional, uso un bucle foreach para cada dimensión.

por ejemplo, para dos dimensiones

foreach($array as $key=>$value)
{
    foreach($value as $k2=>$v2)
    {
         echo
    }
}

¿Qué hago cuando no sé la profundidad de la matriz? Es decir, la profundidad es variable.

Lo único que se me ocurre es codificar una pila completa de bucles y romper el bucle si el siguiente valor no es una matriz. Esto parece un poco tonto.

¿Hay alguna manera mejor?

Respuestas a la pregunta(5)

Su respuesta a la pregunta