簡體   English   中英

PHP Json_decode 多維數組

[英]PHP Json_decode 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'];

任何意見是極大的贊賞。

謝謝,

H。

如果您可以訪問圖像鍵,則:

<?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/>';
    }
}
?>

給出:

圖片封面類型:橫幅

網址:another_random_file_here.jpg

更新:

您鏈接到的 JSON 文件似乎無效,每個系列后都缺少大括號。 這是更正后的 JSON 和代碼:

<?php
$json = <<<JSON
[
{
    "series": {
      "title": "Brooklyn Nine-Nine",
      "images": [
        {
          "coverType": "fanart",
          "url": "http://thetvdb.com/banners/fanart/original/269586-15.jpg"
        },
        {
          "coverType": "banner",
          "url": "http://thetvdb.com/banners/graphical/269586-g3.jpg"
        },
        {
          "coverType": "poster",
          "url": "http://thetvdb.com/banners/posters/269586-13.jpg"
        }
      ],
      "year": 2013
    }
},
{
    "series": {
      "title": "The Middle",
      "images": [
        {
          "coverType": "fanart",
          "url": "http://thetvdb.com/banners/fanart/original/95021-16.jpg"
        },
        {
          "coverType": "banner",
          "url": "http://thetvdb.com/banners/graphical/95021-g14.jpg"
        },
        {
          "coverType": "poster",
          "url": "http://thetvdb.com/banners/posters/95021-8.jpg"
        }
      ],
      "year": 2009
    }
},
{
    "series": {
      "title": "New Girl",
      "images": [
        {
          "coverType": "fanart",
          "url": "http://thetvdb.com/banners/fanart/original/248682-43.jpg"
        },
        {
          "coverType": "banner",
          "url": "http://thetvdb.com/banners/graphical/248682-g20.jpg"
        },
        {
          "coverType": "poster",
          "url": "http://thetvdb.com/banners/posters/248682-14.jpg"
        }
      ],
      "year": 2011
    }
}
]
JSON;

$json = json_decode($json);
// echo '<pre>' .print_r($json, 1) .'</pre>';

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

給出:

標題:布魯克林九九圖片封面類型:橫幅網址: http : //thetvdb.com/banners/graphical/269586-g3.jpg

標題:中間圖像封面類型:橫幅網址: http : //thetvdb.com/banners/graphical/95021-g14.jpg

標題:新女孩圖片封面類型:橫幅網址: http : //thetvdb.com/banners/graphical/248682-g20.jpg

假設這是變量jsondecoded,$json[images][1]->coverType;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM