ciao, ho questo codice circa un array multidimensionale:

Codice PHP:
$dnd = array ('elfo' => array ('incantesimi' => 'arcani',
'territorio' => 'foresta',
'classe' => 'guerriero-mago'),
  
'nano' => array ('incantesimi' => 'no',
'territorio' => 'montagna',
'classe' => 'guerriero'),
  
'umano' => array ('incantesimi' => 'arcani e divini',
'territorio' => 'qualunque',
'classe' => 'qualunque'));
foreach (
$dnd as $razza => $info) {
echo 
"<h2>$razza:</h2>";
while (list (
$info_key,$info_value)= each($info)) {
echo 
"

$info_key$info_value</p>";

fino a qui tutto bene. Mi chiedevo come fare se avessi un array a più dimensioni, tipo questo:

Codice PHP:
$dnd = array ('elfo' => array ('incantesimi' => 'arcani',
'territorio' => 'foresta',
'classe' => 'guerriero-mago'),
  
'nano' => array ('incantesimi' => 'no',
'territorio' => 'montagna',
'classe' => 'guerriero'),
  
'umano' => array ('incantesimi' => 'arcani e divini',
'territorio' => 'qualunque',
'classe' => array ('guerriero''mago''chierico''ladro'))); 
io ho provato a inserire un if e un controllo sull'array, ma dubito che vada bene.

Codice PHP:
foreach ($dnd as $razza => $info) {
echo 
"<h2>$razza:</h2>";
while (list (
$info_key,$info_value)= each($info)) {
if 
is_array($info_value) {
$info_value as => $sub_info };
else {
echo 
"

$info_key$info_value</p>";
}

Come fare per tornare anche l'ultimo array e solo se questo esiste? E' possibile magari impostare di base che se esiste una variabile sub_info (cioè la terza dimensione dell'array) verrà mostrata?
grazie