使用php从json结果中提取项目(项目显示多次)

使用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);

我目前正试图从我在youtube上创建的播放列表中提取标题和视频id

我正在使用youtube api v3以json格式获取播放列表结果

我可以提取我需要的信息,但由于某些原因,结果并没有像预期的那样回来

例如,我在这个播放列表上有三个视频作为测试,当我查看json结果时,它还列出了3个项目

但是,当我用下面的代码列出项目时,前两个项目在一行中列出4次,最后一个项目列出一次

另外,我遗漏了
$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