2014-06-29 64 views
-2

我有下面的JSON並試圖用這個foreach解析它。我只得到-104.21返回。我需要的輸出爲37.72,-104.21解析數組中的JSON數據

"start_latlng":[ 
    37.72, 
    -104.21 
], 

PHP遍歷 「start_latlng」 數組:當我echo $ stLatLng我只得到-104.21

foreach($stData['start_latlng'] as $latlng) { 
    $stLatLng = $latlng; 
} 
+0

查找到'json_decode':http://us1.php.net/manual/en/function.json-decode.php – karthikr

+0

'$ stLatLng = implode(',',$ stData ['start_latlng']);' –

+0

如果你有JSON,你首先必須解碼它。如果你的問題不清楚的話。你能用普通的PHP代碼填充'$ stData'來代替第一個代碼片段嗎?如果您不確定,您可以使用'var_export()'來獲取它。 –

回答

1

的事實,你」重新獲得-104.21我認爲您已經將JSON解碼爲PHP格式。

你只會得到該值的原因是因爲它是數組中的最後一個值,並且在迭代它時爲數組的每個值分配$stLatLng,所以變量會被每個值覆蓋時間,請參閱示例:

foreach($stData['start_latlng'] as $latlng) { 
    $stLatLng = $latlng; // first time it's 37.72, second time it's -104.21 
} 

Here's a demo該循環中發生了什麼。


爲了得到兩個值,你不需要循環它。你可以使用list()獲得這兩個值了(example)

list($lat, $lng) = $stData['start_latlng']; 
// $lat = 37.72, $lng = -104.21