array multidimensionali - come mostrare eventuali sotto dimensioni

ciao, ho questo codice circa un array multidimensionale:

$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 "<p>$info_key: $info_value</p>";
   }

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

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

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 "<p>$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

inviato 6 anni fa
gabar-el
X 0 X

Io lavorerei con un database quando c'è una complessità del genere.

Comunque rimanendo sugli array inserirei una variabile in più che mi avverte se c'è o meno un "sotto-array", se esiste faccio un ciclo per estrarre i dati.

Ciao

risposto 6 anni fa
Mario Santagiuliana
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda