Intanto una cosa, se come indice degli array metti per tutti "gruppo" è come se in realtà ne mettessi solo uno, l'ultimo, perché come gli indici di un array PHP, non possono essercene 2 uguali, sopravvive solo l'ultimo dichiarato, gli altri vengono a turno sostituiti da quello che segue-
Quindi direi che andrebbe fatto così
Codice PHP:
$json = '{
"file":[
{
"gruppo1": [
{
"ospite1":
{
"nome": "Mario",
"cognome": "Rossi"
}
,
"ospite2":
{
"nome": "Paolo",
"cognome": "Verdi"
}
,
"ospite3":
{
"nome": "Paolo",
"cognome": "Verdi"
}
}
],
"gruppo2": [
{
"ospite1":
{
"nome": "Mario",
"cognome": "Rossi"
}
,
"ospite2":
{
"nome": "Paolo",
"cognome": "Verdi"
}
,
"ospite3":
{
"nome": "Paolo",
"cognome": "Verdi"
}
}
]
}
]
}';
$json_o = json_decode($json,true);
foreach( $json_o['file'] as $gruppi )
{
foreach( $gruppi as $gruppo )
{
foreach( $gruppo as $ospiti )
{
foreach($ospiti as $ospite)
{
echo $ospite['nome'] . ' ' . $ospite['cognome'] . '<br>';
}
}
}
}