我正在使用澳大利亞郵政郵編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