使用php从json结果中提取项目(项目显示多次)
我目前正试图从我在youtube上创建的播放列表中提取标题和视频id 我正在使用youtube api v3以json格式获取播放列表结果 我可以提取我需要的信息,但由于某些原因,结果并没有像预期的那样回来 例如,我在这个播放列表上有三个视频作为测试,当我查看json结果时,它还列出了3个项目 但是,当我用下面的代码列出项目时,前两个项目在一行中列出4次,最后一个项目列出一次 另外,我遗漏了使用php从json结果中提取项目(项目显示多次),php,json,youtube-data-api,Php,Json,Youtube Data Api,我目前正试图从我在youtube上创建的播放列表中提取标题和视频id 我正在使用youtube api v3以json格式获取播放列表结果 我可以提取我需要的信息,但由于某些原因,结果并没有像预期的那样回来 例如,我在这个播放列表上有三个视频作为测试,当我查看json结果时,它还列出了3个项目 但是,当我用下面的代码列出项目时,前两个项目在一行中列出4次,最后一个项目列出一次 另外,我遗漏了$url,因为这不是我问题的原因 $result77 = file_get_contents($url);
$url
,因为这不是我问题的原因
$result77 = file_get_contents($url);
$YTapiJSON = json_decode($result77, TRUE);
foreach ($YTapiJSON['items'] as $key){
foreach ($key as $key2) {
foreach ($key2 as $key3) {
$title = $key2['title'];
$key4 = $key2['resourceId']['videoId'];
}
if(!empty($key4)) {
echo $title. "Added " .$key4. "<br>";
}
}
}
$result77=文件获取内容($url);
$YTapiJSON=json_decode($result77,TRUE);
foreach($YTapiJSON['items']作为$key){
foreach($key作为$key 2){
foreach($key2作为$key3){
$title=$key2['title'];
$key4=$key2['resourceId']['videoId'];
}
如果(!空($key4)){
echo$title。“添加了“$key4”。
”;
}
}
}
我会使用两个array\u column()
调用,比如:()
首先将json转换为数组,然后访问项
子数组,然后收集片段
子数组,然后从中收集标题
值
输出:
array (
0 => 'test title 1',
1 => 'test title 2',
2 => 'test title 3',
)
如果您想要
标题
和视频ID
,则可以使用此选项:
$snippets=array_column(json_decode($json,true)['items'],'snippet');
foreach($snippets as $a){
echo $a['title'],(!empty($a['resourceId']['videoId'])?" Added: {$a['resourceId']['videoId']}":''),"\n";
}
下面是一个例子,我修改了第二个视频的videoId(使其为空)以获得效果
输出:
test title 1 Added: Da8-QfGemgo
test title 2
test title 3 Added: 5lvkwZZZmGc
不知道如何正确地“标记”我的代码。正如你可能会发现的那样,我对这里的帖子还很陌生,仍然在试图弄清楚如何显示代码以及我需要问问题的所有内容。我更新了我的第一篇帖子,提供了更多信息,希望能有所帮助。这正是我想要的。谢谢@请阅读以下内容:
test title 1 Added: Da8-QfGemgo
test title 2
test title 3 Added: 5lvkwZZZmGc