【问题标题】:PHP - Error traversing multidimensional associative array from Youtube APIPHP - 从 Youtube API 遍历多维关联数组时出错
【发布时间】:2018-03-28 04:44:23
【问题描述】:

我一直在尝试找出为什么在尝试遍历 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”节点上。 遍历这个数组的正确方法是什么?

【问题讨论】:

  • 几个级别太浅了。 $code 是一个包含 nextPageTokenitems 作为键的数组。所以snippetarray[items][0]['snippet']

标签: php arrays youtube-api syntax-error


【解决方案1】:
foreach ($data_decode['items'] as $item){
   echo $element['snippet']['resourceId']['videoId'];
}

只是一个提示,如果您使用 var_export 而不是 print_r 对我来说会容易得多

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

我可以,但是很乏味。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 2013-07-05
    • 2019-03-01
    • 2020-09-06
    • 1970-01-01
    • 2012-05-26
    • 2012-04-21
    相关资源
    最近更新 更多