2014-09-01 90 views
-1

嘿,我只是现在正在接近Facebook的最新版本的PHP SDK。它似乎使用了一个新的返回数据数组,我似乎无法解析出我需要的数据,而不是解析其中包含的所有其他乱码。Facebook PHP 4.x返回数组解析

数组返回这个样子的:

Array (
    [data] => Array (
     [0] => stdClass Object (
      [id] => 439676913452345546787863523525 
      [name] => John Doe 
      [picture] => stdClass Object (
       [data] => stdClass Object (
        [is_e] => 
        [url] => https://blah.com.... 
       ) 
      ) 
     ) 
     [1] => stdClass Object (
      [id] => 56594790468026754634524674 
      [name] => Bob Barker 
      [picture] => stdClass Object (
       [data] => stdClass Object (
        [is_e] => 
        [url] => https://blah.com.... 
       ) 
      ) 
     ) 
     [2]...etc etc... 
     [paging] => stdClass Object ( 
      [cursors] => stdClass Object ( 
       [before] => QWFMmhllXN5JH....Rk52QWc= 
       [after] => WGHtdnNIwaDlRz....05RNB0E= 
      ) 
     ) 
    ) 
) 

在我需要做的东西沿着这些路线(下面的代码示例越来越返回数组内的ID旧版本的Facebook的SDK和还要检查它是否有值):

foreach($theReturnedArray['data'] as $rData) { 
    $id = (isset($rData['id']) ? $rData['id'] : null); 
    $name = (isset($rData['name']) ? $rData['name'] : null); 

    echo $name . ' ' . $id . '<br />'; 
} 

为了获得我需要的值。现在返回在阵列中增加了一个stdClass对象,我不确定如何获取ID,名称&图片网址

任何帮助将会很棒!

ANSWER

它引起我的代码中的错误,我渐渐0的背面(+)的:

echo $name . ' ' . $id + '<br />'; 

,我需要将其更改为:

echo $name . ' ' . $id . '<br />'; 

和完整代码在一起:

foreach($graphObject['data'] as $rData) { 
    $id = (isset($rData->id) ? $rData->id : null); 
    $name = (isset($rData->name) ? $rData->name : null); 
    $picUrl = (isset($rData->picture->data->url) ? $rData->picture->data->url : null); 

    echo $id . '<br/>'; 
    echo $name . '<br/>'; 
    echo $picUrl . '<br/>'; 
    echo '======================================<br/>'; 
} 
+0

FYI:HTTPS://developers.facebook。 com/docs/php/GraphObject/4.0.0#asarray – CBroe 2014-09-01 06:57:08

+0

感谢您的链接,@CBroe但没有帮助。 – StealthRT 2014-09-02 02:20:03

回答

1

你从对象获得值随->

echo $rData->id;  // This format is for objects 

而且不

echo $rData['id']; // This format is for arrays 

所以,你的代码现在看起来像

$id = isset($rData->id) ? $rData->id : NULL; 
$name = isset($rData->name) ? $rData->name : NULL; 
+0

那么其他 ** [图片] => stdClass Object([data] => stdClass Object([is_e] => [url] => https://blah.com....**数组为了得到图片url? – StealthRT 2014-09-01 06:34:11

+0

相同的格式。$ rData-> picture-> url和$ rData-> picture-> data'等 – 2014-09-01 06:38:55

+0

所以** $ theReturnedArray ['data'] **是** $ theReturnedArray-> data **以及因为我没有得到0以外的任何东西 – StealthRT 2014-09-01 17:27:19