Buon giorno, vorrei sapere se è possibile adottare un metodo che permette di ciclare array contenente altri array(che a suo volta possono, o non possono, contenere un altro array) e verificare se quest'ultimo è effettivamente un array o semplicemente un valore (stringa,intero,float......) dell'array.
Esempio per spiegarmi meglio:
Codice PHP:
//primo array generazione
$array_padre = array(
"nome" => "Marco",
"cognome" => "ABC",
"specifiche" => array(
"eta" => "39",
"peso" => "78",
"parenti" => array(
"parenti_nome" => "Alessio",
.....
.....
)//fine array parenti
)//fine array specifiche
)//fine array padre
Io utilizzo il ciclo foreach() per ciclare l'array padre ma, come ho detto, questo array potrà contenere o meno, come in questo esempio, il campo 'specifiche' che a sua volta è un array.
Io mi trovo di fronte a questo problema, visto che devo stampare il contenuto dell'array padre per generare dinamicamente un file XML; se dentro all'array 'parenti', ad esempio, inserisco un altro array viene generato un warning e non scrive niente su file, ovviamente, perchè a fwrite() passo un array e non una stringa.
Esiste un modo, oppure una dritta, per verificare dinamicamente questa condizione?
O devo inserire per ogni ciclo un contro if(is_array($x)){} e eseguire le due azione distinte, ovvero la stampa del valore nel caso in cui non sia un array, oppure un ulteriore ciclo foreach() per poi poter stampare i valori?
Però inserendo il controllo if mi trovo a dover gestire io gli annidamenti che teoricamente dovrebbero essere dinamici. Quindi inserendo IF() fisso un massimo di annidamenti che oltre quel limite non è possibile gestire un ulteriore annidamento e la cosa sarebbe alquanto scomoda.
Spero di essermi spiegato bene.