PHP Looping a través de matriz recursiva

Quiero recorrer una matriz en PHP. El ciclo debe ser recursivo, porque ahora no sé cuántas matrices en matrices hay. Es para leer traducciones en Symfony2.

El formato de salida es:

ade afg bhi cjklm cno 

con matriz de ejemplo:

 $array = array( 'a' => array('d' => 'e', 'f' => 'g'), 'b' => array('h' => 'i'), 'c' => array( 'j' => array( 'k' => array( 'l' => 'm')), 'n' => 'o')); 

He intentado lo siguiente, pero esta no es la solución final, pero la recursión funciona:

 function displayArrayRecursively($array) { foreach ($array as $key => $value) { if (is_array($value)) { echo $key . '
'; displayArrayRecursively($value); } else { echo $key . '
' . $value . '
'; } } }

¡Gracias por adelantado!

Supongo que su función acaba de salir

 a d e ... 

Algo como esto debería funcionar :

 displayArrayRecursively($array, null); function displayArrayRecursively($array, $keysString = '') { if (is_array($array)) { foreach ($array as $key => $value) { displayArrayRecursively($value, $keysString . $key . '.'); } } else { echo $keysString . $array . '
'; } }

Debe ser bastante cercano a lo que necesita.

Esta función hace lo que quieres:

 function displayArrayRecursively($array, $tree = array()) { foreach ($array as $key => $value) { if (is_array($value)) { displayArrayRecursively($value, array_merge($tree, array($key))); } else { print implode('.', array_merge($tree, array($key, $value))); print "\n
"; } } }

Salida:

 ade afg bhi cjklm cno 

Función que deseas

 function displayArrayRecursively($array, $parent = '') { foreach ($array as $key => $value) { if (is_array($value)) { if(count($value) == 1 && !empty($parent)) $key = $parent . $key; displayArrayRecursively($value, $key); } else { echo $parent; echo $key . $value . '
'; } } }