2014-09-01 86 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