【发布时间】:2012-08-01 05:14:19
【问题描述】:
我想将来自 google maps html 调用(如下)的位置名称添加到特定的 php 变量,以便我可以 1)将其存储在 mysql 数据库中,2)将其显示为 echo 语句的一部分(echo $地区)。
我已经通过以下方式解码了 json 数据:json_decode($data,true);声明。
鉴于多变量数组结构的复杂性,我想深入研究并提取一个特定值(如果存在)。一个帮助解释的例子。
为了节省空间,这里是 json 数据的缩写:
{ “结果”:[
{
“地址组件”:[
{
"long_name" : "2917-2981",
"short_name" : "2917-2981",
“类型”:[“街道号码”]
},
{ "long_name" : "Runyon Canyon Rd",
"short_name" : "Runyon Canyon Rd",
“类型”:[“路线”]
},
{
"long_name" : "好莱坞山",
"short_name" : "好莱坞山",
“类型”:[“邻里”,“政治”]
},
{
"long_name" : "洛杉矶",
"short_name" : "洛杉矶",
"types" : [ "locality", "political" ]
}
....
我的代码:
...
$data = @file_get_contents($url);
$phpresult = json_decode($data,true);
var_dump($phpresult);
var_dump($phpresult) 显示:
array(2) { ["results"]=> array(8) { [0]=> array(4) { ["address_components"]=> array(8) { [0]=> array(3 ) { ["long_name"]=> string(9) "2917-2981" ["short_name"]=> string(9) "2917-2981" ["types"]=> array(1) { [0]= > string(13) "street_number" } } [1]=> array(3) { ["long_name"]=> string(16) "Runyon Canyon Rd" ["short_name"]=> string(16) "Runyon Canyon Rd" ["types"]=> array(1) { [0]=> string(5) "route" } } [2]=> array(3) { ["long_name"]=> string(15) "好莱坞山" ["short_name"]=> 字符串(15) "好莱坞山" ["types"]=> 数组(2) { [0]=> 字符串(12) "neighborhood" [1]=> 字符串(9 ) "政治" } } [3]=> array(3) { ["long_name"]=> string(11) "洛杉矶" ["short_name"]=> string(11) "洛杉矶" ["types"]=> array(2) { [0]=> string(8) "locality" [1]=> string(9) "political" }...
我想通过搜索/解析/将值“洛杉矶”存储在变量 $locality 中?条件“type = locality”的数组。
我不想通过代码查找信息:
echo $phpresult['results'][0]['address_components'][3]['long_name'];
因为假设变量始终是 1) 在数组中的同一位置和 2) 它存在。
任何帮助将不胜感激。我还没有找到答案,可能已经阅读(但不完全理解)与该主题相关的每篇文章。
提前感谢您的帮助。
肖恩
【问题讨论】:
-
我认为数组格式保持不变,所以上面应该可以正常工作。只是一个想法 - 也许您需要以 XML 格式检索信息并使用 xpath。或者,如果您希望坚持上述做法,您可能需要创建一个函数,该函数循环遍历此数据数组并检查关键“位置”等