php - PHP 数组 foreach 项
问题描述
我在获取多级数组中的值时遇到问题。
这是我用 CURL 抓取并放入变量的 JSON。
{
"id": 454626,
"results": [
{
"iso_3166_1": "SK",
"release_dates": [
{
"certification": "U",
"iso_639_1": "sk",
"note": "",
"release_date": "2020-02-20T00:00:00.000Z",
"type": 3
}
]
},
{
"iso_3166_1": "DE",
"release_dates": [
{
"certification": "6",
"iso_639_1": "",
"note": "",
"release_date": "2020-02-13T00:00:00.000Z",
"type": 3
}
]
},
{
"iso_3166_1": "TW",
"release_dates": [
{
"certification": "G",
"iso_639_1": "",
"note": "",
"release_date": "2020-02-21T00:00:00.000Z",
"type": 3
}
]
}
]
}
这是我遇到问题的 PHP 代码。
$id_tmdb = $row[id_tmdb];
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.themoviedb.org/3/movie/$id_tmdb/release_dates?api_key=API-KEY",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET"
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
$result = json_decode($response, true);
foreach($result[results][release_dates] as $key=>$val){
echo "$val[release_date]";
}
我正在尝试获取,release_date
但它只是显示为空白。
我有另一个页面以相同的方式格式化,所以我不确定为什么它不起作用....谢谢你的帮助。
解决方案
您的$result['results']
值也是一个数组,您需要迭代它以及release_dates
数组:
foreach($result['results'] as $results) {
foreach ($results['release_dates'] as $val){
echo "$val[release_date]\n";
}
}
输出(对于提供的示例 JSON):
2020-02-20T00:00:00.000Z
2020-02-13T00:00:00.000Z
2020-02-21T00:00:00.000Z
推荐阅读
- typescript - 使用箭头函数而不是函数表达式 - tslint 错误
- join - 如何在实体框架核心中使用 group by 和多个表连接
- jquery - Jquery 函数不按同步顺序工作
- javascript - Blogspot 模板:将小部件输出传递给 javascript
- angularjs - 从 angularjs 获取表单输入值
- javascript - 未捕获(承诺中):TypeError:无法读取 prod build angular7 中未定义的属性“dxswipestart”
- android - ChangeCursor 和 getItemViewType java.lang.ArrayIndexOutOfBoundsException
- r - bsModal 适用于 fluidPage 但不能没有它
- html - Nu Html 检查器错误“扩展为回车的数字字符引用。” 使用“”时
- graphql - 在 AWS 上使用 Cloudfoundry 部署的 Hasura GraphQL 引擎上的订阅错误