我正在使用Twitter Rest API收集有关热门话题的信息。 API返回JSON,我试图解析数据。
这是我的相关代码(我不包括我的钥匙等等):
$twitter = new TwitterAPIExchange($settings);
$string = json_decode($twitter->setGetfield($getfield)
->buildOauth($url, $requestMethod)
->performRequest(), true);
if($string["errors"][0]["message"] != "")
{echo "<h3>Sorry, there was a problem.</h3><p>Twitter returned the following error message:</p><p><em>"
.$string[errors][0]["message"]."</em></p>";exit();}
foreach($string as $items)
{
echo "Name: ". $items['name']."<br />";
echo "Volume: ". $items['tweet_volume']."<br /><hr />";
}
它返回的是一个看起来像这样的嵌套数组:
Array
(
[0] => Array
(
[trends] => Array
(
[0] => Array
(
[name] => #NationalMargaritaDay
[url] => http://twitter.com/search?q=%23NationalMargaritaDay
[promoted_content] =>
[query] => %23NationalMargaritaDay
[tweet_volume] => 49400
)
[1] => Array
(
[name] => #WORKvideo
[url] => http://twitter.com/search?q=%23WORKvideo
[promoted_content] =>
[query] => %23WORKvideo
[tweet_volume] => 103959
)
......依此类推(我不会列出整个数组)。
我需要做的是能够遍历[trends]数组而不是父数组。我怎样才能修改我的foreach循环来做到这一点?或者,我可以在每个之前放一两步,以便我在内部数组中进行迭代吗?我需要能够从每个项目中提取[name]
和[twitter_volume]
。
答案 0 :(得分:1)
使用:
foreach($string[0]['trends'] as $items) {
...
}
或者如果在$strings
的顶层有多个元素,则需要嵌套循环:
foreach ($string as $el) {
foreach ($el['trends'] as $items) {
...
}
}