我正在使用澳大利亚邮政邮编loookup API,它会返回JSON响应。来自JSON的PHP数组如果只有一个结果,则不同
如果我要寻找的3094,它返回
Array
(
[localities] => Array
(
[locality] => Array
(
[category] => Delivery Area
[id] => 5588
[latitude] => -37.717549
[location] => MONTMORENCY
[longitude] => 145.121028
[postcode] => 3094
[state] => VIC
)
)
)
但是,如果我寻找的是有一个以上的郊区(位置)相关联的邮政编码,如3084,我得到
Array
(
[localities] => Array
(
[locality] => Array
(
[0] => Array
(
[category] => Delivery Area
[id] => 5574
[latitude] => -37.739262
[location] => VIEWBANK
[longitude] => 145.096424
[postcode] => 3084
[state] => VIC
)
[1] => Array
(
[category] => Delivery Area
[id] => 5572
[latitude] => -37.756341
[location] => HEIDELBERG
[longitude] => 145.067145
[postcode] => 3084
[state] => VIC
)
[2] => Array
(
[category] => Delivery Area
[id] => 5573
[latitude] => -37.742893
[location] => ROSANNA
[longitude] => 145.065044
[postcode] => 3084
[state] => VIC
)
[3] => Array
(
[category] => Delivery Area
[id] => 5570
[latitude] => -37.7442195
[location] => BANYULE
[longitude] => 145.08793
[postcode] => 3084
[state] => VIC
)
[4] => Array
(
[category] => Delivery Area
[id] => 5571
[latitude] => -37.762519
[location] => EAGLEMONT
[longitude] => 145.068208
[postcode] => 3084
[state] => VIC
)
)
)
)
现在,通过
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch, CURLOPT_URL, $api_search_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Auth-Key: ' . $authKey
));
$response = curl_exec($ch);
curl_close($ch);
$json_dec = json_decode($response,true);
解码后,我可以做一个foreach循环就像
echo '<ul id="pcode_results" style="list-style:none;text-align:left;padding:10px;">';
foreach($json_dec['localities'] as $locality){
echo '<li class="pcode_res" style="cursor:pointer;" id="' . $locality['postcode'] . ',' . $locality['location'] . ',' . $locality['state'] . '">' . $locality['postcode'] . ', ' . $locality['location'] . ', ' . $locality['state'] . '</li>';
}
echo '</ul>';
,它似乎工作时,有一个结果,如3094,而不是当有像3084
多个结果我本来就具有JSON解码作为一个对象数组,并做$ locality- >邮政编码将工作,但只有当有超过1个结果。
我哪里错了?它需要能够处理数组结构不同的两种情况(1个结果或多于1个)。
谢谢。
你先生(假设你是他)是个天才!这种方法完美。你的第二句话清楚地解释了我在传达问题时遇到的困难。 – RossS