通过关联数组迭代

时间:2012-06-06 11:42:01

标签: php json

我正在尝试通过此API调用获取特定用户的所有Twitter关注者

https://api.twitter.com/1/users/lookup.json?screen_name=twitterapi,twitter&include_entities=true

那里有一个示例输出:

https://dev.twitter.com/docs/api/1/get/users/lookup 

我正在尝试通过执行以下操作来获取用户的屏幕名称:

$json2=file_get_contents('http://api.twitter.com/1/users/lookup.json?user_id='.$post.'') ; 
$accounts2 = json_decode($json2);

while( $element = each( $accounts2 ) ) {
  echo $element[ 'screen_name' ];
  echo '<br />';
}

其中$ post是所有ID(大约100个)连接在一起。

上述情况将失败:

Notice: Trying to get property of non-object

请帮忙吗?

3 个答案:

答案 0 :(得分:3)

替换此行:

$accounts2 = json_decode($json2);

有了这个:

$accounts2 = json_decode($json2, true);

它将其转换为关联数组。由于user_id是唯一的,因此您无需遍历结果,只需执行此操作:

echo $accounts2[0]['screen_name'] . '<br />';

答案 1 :(得分:0)

这很有用。

$json2=file_get_contents('http://api.twitter.com/1/users/lookup.json?user_id='.$post.'') ; 
$accounts2 = json_decode($json2);
foreach ($accounts2 as $key => $jsons) {

             foreach($jsons as $key => $value) {

                if($key == 'screen_name'){
                 echo $value;
                }


            }
        }

答案 2 :(得分:0)

使用此功能。

$json2=file_get_contents('http://api.twitter.com/1/users/lookup.json?user_id='.$post.'') ; 
$accounts2 = json_decode($json2,true);

echo $accounts2[0]['screen_name'];