2012-06-29 95 views
-3

我想使用json解码获取这些数据。请帮助..如何在php中获取嵌套的json解码数据。

到目前为止,我想出了这个脚本,但我无法取得倒数第二和最后的'名称'和'链接'的行动。请帮助..

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

但是,这是行不通的,请帮我想从下面的例子中得到所有名称和链接的数据从Facebook图形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" 
      } 
      ], 
+0

如果我只需要最后“名称”和“链接”离开每一个。或第二最后.. –

回答

0

请注意,actions是一个数组,它是您的案例中唯一的成员data

你只是遍历错误的部分,代码应该是:

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

如果我只需要最后的'名称'和'链接'在行动或我需要第二个最后'名称'和'链接' –

+0

'$ json ['data'] ['actions']'是一个['Array'](http://php.net/Array),做你想做的任何事情,通过'array_shift'-ing或通过索引访问它的最后一个... –

+0

你能给我举个例子吗?通过索引访问它.. –