【发布时间】:2016-09-08 19:29:12
【问题描述】:
我有一个 foreach 循环,它应该遍历 JSON,并使用 Youtube api 返回 JSON 中列出的每个视频的适当 ID。 这是我的代码:
class Videos {
private $mVideoUrl;
function setVideoTitle($videoUrl){
$this->mVideoUrl= $videoUrl;
}
function getVideoTitle(){
return $this->mVideoUrl;
}
}
$jsonFile = file_get_contents($url);
$jfo = json_decode($jsonFile);
$items = $jfo->items;
$vidArray = array();
foreach ($items as $item){
if(!empty($item->id->videoId)){
$Videos = new Videos;
$Videos->setVideoUrl($item->id->videoId);
$id = $Videos->getVideoUrl();
array_push($vidArray, $id);
}
echo $vidArray[0];
}
问题是,数组推送工作正常,但是当我回显它时,它只是为每个循环迭代添加列表中的第一个 ID。当我回显 $id 变量时,它会很好地打印所有 ID。
最终我希望能够为每个视频创建一个对象,存储它的 ID 和其他信息。
我觉得这是一个简单的解决方法,但我一生都无法弄清楚。 我将不胜感激任何帮助! 此外,如果我对这一切都错了,也很感谢您的建议!
谢谢!
【问题讨论】:
-
echo $vidArray[0];只回显第一个元素。试试print_r($vidArray);
标签: php arrays json foreach youtube-api