PHP Json_decode多维数组

时间:2016-12-13 19:18:35

标签: php json multidimensional-array

我正在尝试在PHP中解码json代码的一部分。 json看起来像:

"title":"A Title Here",
"images":[

{
    "coverType":"fanart",
    "url":"some_random_file_here.jpg"
},
{
    "coverType":"banner",
    "url":"another_random_file_here.jpg"
},
{
    "coverType":"poster",
    "url":"yet_another_random_file_here.jpg"
}

],

我想获得" coverType"下的网址:" banner"

我可以使用以下代码轻松解析标题:

$itemNr = 0;
            foreach($json as $item) {
                $mytitle = $item['title'];
                echo $mytitle;
$itemNr++;

我的代码如何使用相同的概念。请注意,我已经简化了JSON的代码。我上面的代码中没有显示的一些项目的实际php看起来像:

$somevariable = $item['series']['tvdbId'];

非常感谢任何建议。

谢谢,

小时。

2 个答案:

答案 0 :(得分:3)

如果您可以访问图像键,则:

$1

给出:

图片封面类型:横幅

网址:another_random_file_here.jpg

更新:

您链接到的JSON文件似乎无效,每个系列后都缺少大括号。这是更正后的JSON和代码:

<?php
$json = <<<JSON
{
    "title":"A Title Here",
    "images":[
        {
            "coverType":"fanart",
            "url":"some_random_file_here.jpg"
        },
        {
            "coverType":"banner",
            "url":"another_random_file_here.jpg"
        },
        {
            "coverType":"poster",
            "url":"yet_another_random_file_here.jpg"
        }
    ]
}
JSON;

$json = json_decode($json);
print_r($json);

foreach ($json->images as $img)
{
    if ( $img->coverType == "banner" )
    {
        echo 'Image Cover Type: ' .$img->coverType .'<br/>';
        echo 'URL: ' .$img->url .'<br/>';
    }
}
?>

给出:

标题:Brooklyn Nine-Nine 图像封面类型:横幅 网址:http://thetvdb.com/banners/graphical/269586-g3.jpg

标题:中间 图像封面类型:横幅 网址:http://thetvdb.com/banners/graphical/95021-g14.jpg

标题:新女孩 图像封面类型:横幅 网址:http://thetvdb.com/banners/graphical/248682-g20.jpg

答案 1 :(得分:0)

假设这是jsondecoded变量, $ json [images] [1]-> coverType;