【发布时间】:2019-02-26 05:12:54
【问题描述】:
我试图弄清楚如何解析具有多个结果的 json 响应。这是响应数据 -
Array
(
[id] => 7181676
[api_request_id] => 20984853
[user] => 8305
[vin] => JTDKN3DU7D1643423
[make] => Toyota
[model_name] => Prius
[model_year] => 2013
[last_updated] => 2019-02-22T01:08:15.628318Z
[recall_count] => 2
[status] => ok
[recalls] => Array
(
[0] => Array
(
[recall_id] => 15753
[recall_age] => 0
[nhtsa_id] => 18V684000
)
[1] => Array
(
[recall_id] => 16733
[recall_age] => 1
[nhtsa_id] => 16V684123
)
)
)
我想循环获取recalls[0]和recalls[1],因为我不知道会有多少结果,所以不能手动完成。
我正在寻找的回应是 -
2013 Toyota Prius
Recall ID - 1573
Recall Age - 0
Nhtsa Id - 18v684000
Recall ID - 16733
Recall Age - 1
Nhtsa Id - 16v684123
我会做这样的事情吗? -
$data = curl_exec($ch);
$responseData = json_decode($data, TRUE);
foreach($responseData as $item){
echo $item;
}
【问题讨论】:
-
你可以像
echo $item['id'];一样得到它的对应值7181676 -
是的,谢谢,我知道如何获取单个值,但由于会有未知数量的响应,我想循环遍历每个 $responseDara[recalls][0]、$responseDara[recalls ][1] 等等。
-
使用is_array()方法解析json数据后,在迭代数组的同时检查数组即可。
-
recall_count 告诉我是否有多个结果,我可以使用它来知道迭代多少次,但不确定如何执行。