2012-06-06 17 views
9

ho questa matrice:chiavi degli array Recupero da ingresso JSON

$json = json_decode(' 
{"entries":[ 
{"id": "29","name":"John", "age":"36"}, 
{"id": "30","name":"Jack", "age":"23"} 
]} 
'); 

e sto cercando un PHP "per ogni" loop che recuperare i nomi dei tasti sotto entries, vale a dire:

id 
name 
age 

Come posso fare questo?

risposta

22

Prova ora

foreach($json->entries as $row) { 
    foreach($row as $key => $val) { 
     echo $key . ': ' . $val; 
     echo '<br>'; 
    } 
} 

Nella chiave di $ si deve ottenere i nomi chiave e nella Val si SHAL ottenere i valori

+0

Ciao, ho il file json i.e file.json voglio mostrare i dati in formato tabella provato ad integrare qui è il codice $ val) {$ chiave eco. ':'. $ Val; echo '
'; } } Ecco l'errore: Avviso: argomento non valido fornito per foreach() in /var/www/html/new_git/json.php nella riga 6 – rupesh

0
foreach($json->entries[0] AS $key => $name) { 
    echo $key; 
} 
+0

Grazie Mihai. Sfortunatamente, sto ottenendo questo: Errore irreversibile: impossibile utilizzare l'oggetto di tipo stdClass come array – Nick

1

Si potrebbe fare qualcosa di simile:

foreach($json->entries as $record){ 
    echo $record->id; 
    echo $record->name; 
    echo $record->age; 
} 

Spero che questo aiuti!

+1

Questo recupererà i valori effettivi. Sto cercando i nomi delle chiavi. Grazie! – Nick

+0

Per fare ciò, avrete bisogno che l'oggetto '$ json' sia un array. Per fare ciò, devi fornire il secondo parametro alla funzione 'json_decode()' –

+0

Ho dimenticato di aggiungere che dovresti usare l'oggetto '$ json' come array e usare le voci' foreach ($ json [') '] come $ record) {foreach ($ record come $ chiave => $ valore) {...}} ' –

0

Si potrebbe provare a ottenere le proprietà dell'oggetto utilizzando get_object_vars:

$keys = array(); 

foreach($json->entries as $entry) 
    $keys += array_keys(get_object_vars($entry)); 

print_r($keys); 
0

Non ero soddisfatto delle altre risposte, quindi aggiungo il mio. Credo che l'approccio più generale è:

$array = get_object_vars($json->entries[0]); 
foreach($array as $key => $value) { 
    echo $key . "<br>"; 
} 

dove ho usato entries[0] perché si assume che tutti gli elementi dell'array entries hanno gli stessi tasti.

Dai un'occhiata alla documentazione ufficiale per key: http://php.net/manual/en/function.key.php

Problemi correlati