2014-06-29 65 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