PHP - 从Youtube API遍历多维关联数组时出错

时间:2018-03-28 04:44:23

标签: php arrays youtube-api syntax-error

我一直试图找出为什么在尝试遍历Youtube API生成的数组时遇到错误(由print_r获取的树):

Array
(
    [nextPageToken] => CAIQAA
    [items] => Array
        (
            [0] => Array
                (
                    [snippet] => Array
                        (
                            [resourceId] => Array
                                (
                                    [videoId] => sGIm0-dQd8M
                                )

                        )

                )

            [1] => Array
                (
                    [snippet] => Array
                        (
                            [resourceId] => Array
                                (
                                    [videoId] => VGd1ml4Hvas
                                )

                        )

                )

        )

)

在第一个例子中,我尝试了foreach,但它产生了一个错误:

$data_decode = json_decode($data, true); //here I get my array

foreach ($data_decode as $decode){
    foreach ($decode as $code){
        echo $code['snippet']['resourceId']['videoId'];
    }
}

Invalid argument supplied for foreach()

我认为问题出在“nextPageToken”节点上,我需要这个节点。 遍历此数组的正确方法是什么?

1 个答案:

答案 0 :(得分:1)

foreach ($data_decode['items'] as $item){
   echo $element['snippet']['resourceId']['videoId'];
}

只是一个提示,如果你使用var_export而不是print_r,我会更容易,var_export将打印一个语法正确的PHP数组,print_r在人类中打印一个数组可读格式。

因此我必须获取您的示例数据并将所有[key]替换为"key"引用值并添加逗号,然后才能在代码中使用它来进行测试。

我能做到,但这很乏味。