cómo obtener datos de decodificación json anidados en php.

Quiero obtener estos datos usando json decode. Por favor ayuda..

Hasta ahora, se me ocurrió este script, pero no pude obtener el penúltimo y último 'nombre' y 'enlace' en las acciones. por favor ayuda..

foreach($json['data'] as $post)
{
$name1 = $post['actions']['name'];
$name2 = $post['actions']['name']['name'];
$name3 = $post['actions']['name']['name']['name'];

Pero esto no funciona, por favor ayuda, quiero obtener todos los datos de nombre y enlace del siguiente ejemplo, es un fragmento de Facebook Graph Api.

    {
      "data": [
        {

          "actions": [
            {
              "name": "Comment", 
              "link": "http://www.facebook.com/xxxxxidxxxx/posts/xxxxidxxxxxx"
            }, 
            {
              "name": "Like", 
              "link": "http://www.facebook.com/xxxxxidxxxxxx/posts/xxxxidxxxxxxx"
            }
{
              "name": "Comment", 
              "link": "http://www.facebook.com/xxxxxidxxxx/posts/xxxxidxxxxxx"
            }, 
            {
              "name": "Like", 
              "link": "http://www.facebook.com/xxxxxidxxxxxx/posts/xxxxidxxxxxxx"
            }
{
              "name": "Comment", 
              "link": "http://www.facebook.com/xxxxxidxxxx/posts/xxxxidxxxxxx"
            }, 
            {
              "name": "Like", 
              "link": "http://www.facebook.com/xxxxxidxxxxxx/posts/xxxxidxxxxxxx"
            }
          ],

preguntado el 29 de junio de 12 a las 20:06

¿Qué sucede si solo necesito el apellido 'Nombre' y 'Enlace'? Deje cada uno. o penúltimo.. -

1 Respuestas

este producto está hecho por encargo con un tiempo de producción de XNUMX a XNUMX semanas actions es una matriz y es el único miembro de data en tu caso.

Solo está iterando sobre la parte incorrecta, el código debería ser:

foreach($json['data']['actions'] as $action) {
  $name = $action['name'];
  $link = $action['link'];
}

Respondido el 29 de junio de 12 a las 20:06

¿Qué sucede si solo necesito el último 'nombre' y el 'enlace' en acción o necesito el penúltimo 'nombre' y 'enlace'? Asim

$json['data']['actions'] es un Array, haz lo que quieras con él, consigue el último por array_shift-ing o accediendo a él por índice... - Guionista jugoso

@Asim, es realmente simple obtener el tercer elemento del uso de la matriz $json['data']['actions'][2] (índice de base cero). Para obtener el último índice, puede usar algo como count($array)-1. Oye, ve y aprende algunas matrices! - Guionista jugoso

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.