【发布时间】:2019-11-16 19:09:32
【问题描述】:
我收到了 Json 格式的谷歌回复。当我解码并打印输出时,它工作得很好。像这样
print_r($output);
但是当我尝试访问数组的单个参数时,它不起作用。
print_r($output->results[0]->geometry->location->lat);
它给出了这个错误。
"message": "未定义的偏移量:0", 代码:
public function mapdata(Request $request){
$address = $request->name;
$formattedAddress = str_replace(' ','+',$address);
$response = file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?address='.$formattedAddress.'&sensor=true_or_false&key=APIKEY);
$output = json_decode($response);
//print_r($output);
print_r($output->results[0]->geometry->location->lat);
}
输出:
stdClass Object
(
[results] => Array
(
[0] => stdClass Object
(
[address_components] => Array
(
[0] => stdClass Object
(
[long_name] => Melbourne
[short_name] => Melbourne
[types] => Array
(
[0] => colloquial_area
[1] => locality
[2] => political
)
)
[1] => stdClass Object
(
[long_name] => Victoria
[short_name] => VIC
[types] => Array
(
[0] => administrative_area_level_1
[1] => political
)
)
[2] => stdClass Object
(
[long_name] => Australia
[short_name] => AU
[types] => Array
(
[0] => country
[1] => political
)
)
)
[formatted_address] => Melbourne VIC, Australia
[geometry] => stdClass Object
(
[bounds] => stdClass Object
(
[northeast] => stdClass Object
(
[lat] => -37.5112737
[lng] => 145.5125288
)
[southwest] => stdClass Object
(
[lat] => -38.4338593
[lng] => 144.5937418
)
)
[location] => stdClass Object
(
[lat] => -37.8136276
[lng] => 144.9630576
)
[location_type] => APPROXIMATE
[viewport] => stdClass Object
(
[northeast] => stdClass Object
(
[lat] => -37.5112737
[lng] => 145.5125288
)
[southwest] => stdClass Object
(
[lat] => -38.4338593
[lng] => 144.5937418
)
)
)
[place_id] => ChIJ90260rVG1moRkM2MIXVWBAQ
[types] => Array
(
[0] => colloquial_area
[1] => locality
[2] => political
)
)
)
[status] => OK
)
【问题讨论】:
-
向我们展示
print_r($output);的结果 -
我已经添加了 print_r($output); 的结果@HTMHell
-
一步一步尝试。 print_r($output->results) 看看你得到了什么。
标签: php arrays json google-maps laravel-5