2012-06-06 9 views
9

que tienen esta matriz:claves de matriz recuperar de entrada de JSON

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

y yo estoy buscando un PHP "para cada" bucle que recuperar los nombres clave bajo entries, es decir:

id 
name 
age 

¿Cómo puedo hacer esto?

Respuesta

22

Pruébalo

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

En la tecla $ se deberá obtener los nombres de las teclas y en el val que ShaL obtener los valores

+0

Hola, tengo el archivo json i.e file.json quiero mostrar datos en formato de tabla intenté integrar aquí está el código $ val) { echo $ key. ':'. $ val; echo '
'; } } Aquí está el error: Advertencia: el argumento no válido proporcionado para foreach() en /var/www/html/new_git/json.php en la línea 6 – rupesh

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

Gracias Mihai. Desafortunadamente, estoy obteniendo esto: Error fatal: No se puede usar el objeto de tipo stdClass como matriz – Nick

1

se podría hacer algo como esto:

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

Espero que esto ayude!

+1

Esto obtendrá los valores reales. Estoy buscando los nombres clave. ¡Gracias! – Nick

+0

Para hacer eso, necesitarás que el objeto '$ json' sea una matriz en su lugar. Para hacer eso, necesitas suministrar el segundo parámetro a la función 'json_decode()' –

+0

Olvidé agregar eso, debes usar el objeto '$ json' como una matriz y usar' foreach ($ json ['entries '] as $ record) {foreach ($ record as $ key => $ value) {...}} ' –

0

Usted podría tratar de conseguir las propiedades del objeto utilizando get_object_vars:

$keys = array(); 

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

print_r($keys); 
0

No estaba satisfecho con otras respuestas, así que agregué las mías. Creo que el enfoque más general es:

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

donde solía entries[0] porque asumir que todos los elementos de la matriz entries tienen las mismas claves.

Tener un vistazo a la documentación oficial key: http://php.net/manual/en/function.key.php

Cuestiones relacionadas