[英]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.