guarda che la struttura del json è "sbagliata" (anche se puoi continuare sempre a leggerlo eh), nel senso che dentro "file" ci dovrebbe essere un array di "gruppo", che a sua volta contiene un array di "ospite"... nel tuo caso hai "file" che contiene un array dove ogni elemento è una mappa chiave => valore con chiave "gruppo" e valore una mappa con chiave ospite e un array di ... oddio mamma ma che struttura eh? oO oO riguardo al tuo codice, se fai print_r($json_o) prima del ciclo vedi che struttura ha tirato fuori da quella cosa, cmq una struttura più lineare era:
codice:
{
"file":[
{
"gruppo":
{
"ospite":[
{
"nome": "Mario",
"cognome": "Rossi"
},
{
"nome": "Paolo",
"cognome": "Verdi"
},
{
"nome": "Paolo",
"cognome": "Verdi"
}
]
}
},
{
"gruppo":
{
"ospite":[
{
"nome": "Mario",
"cognome": "Rossi"
},
{
"nome": "Paolo",
"cognome": "Verdi"
},
{
"nome": "Paolo",
"cognome": "Verdi"
}
]
}
}
]
}
che ancora meglio, se non ti serve "gruppo" come chiave, verrebbe:
codice:
{
"file":[
{
"ospite":[
{
"nome": "Mario",
"cognome": "Rossi"
},
{
"nome": "Paolo",
"cognome": "Verdi"
},
{
"nome": "Paolo",
"cognome": "Verdi"
}
]
},
{
"ospite":[
{
"nome": "Mario",
"cognome": "Rossi"
},
{
"nome": "Paolo",
"cognome": "Verdi"
},
{
"nome": "Paolo",
"cognome": "Verdi"
}
]
},
]
}
che in questo caso iteresti così:
Codice PHP:
foreach($json_o['file'] as $group)
{
foreach($group['ospite'] as $ospite)
{
echo "nome ".$ospite['nome'].' - cognome '.$ospite['cognome']."\n";
}
}
o qualcosa di simile