-1

我有一个来自 Google geo api 的数组,这个结果来自 json,所以我使用 json_decode()。

stdClass Object
(
    [results] => Array
        (
            [0] => stdClass Object
                (
                    [address_components] => Array
                        (
                            [0] => stdClass Object
                                (
                                    [long_name] => 78213
                                    [short_name] => 78213
                                    [types] => Array
                                        (
                                            [0] => postal_code
                                        )

                                )

                            [1] => stdClass Object
                                (
                                    [long_name] => San Antonio
                                    [short_name] => San Antonio
                                    [types] => Array
                                        (
                                            [0] => locality
                                            [1] => political
                                        )

                                )

                            [2] => stdClass Object
                                (
                                    [long_name] => Bexar
                                    [short_name] => Bexar
                                    [types] => Array
                                        (
                                            [0] => administrative_area_level_2
                                            [1] => political
                                        )

                                )

但是,当我尝试访问$result->0->address_components时,我会收到此错误

解析错误:解析错误,在 C:\wamp\www\test.php 中需要 'T_STRING' 或 'T_VARIABLE' 或 "{" 或 "$"。

如何访问 0 索引值?

4

3 回答 3

1

那是因为results是一个数组。您可以像这样访问它:

$thevar->results[0]->address_components

使用StdClass与 json 的 atcual 映射可能很烦人。如果您将整个结构强制为关联数组,则更容易:

$data = json_decode($jsonString, true);
echo $dats['results'][0]['address_components'][0]['long_name'];
于 2013-03-08T07:32:51.190 回答
0

用这个

echo $array->results[0]->address_components;

并使用

 json_decode($array,true); // it will convert it to array
于 2013-03-08T07:33:03.227 回答
0

[结果] 是一个数组。而不是反对

你应该使用 $geocode 是你的谷歌返回的数据。

$output = json_decode($geocode);
$output->result[0]->address_components

对于拳头 long_name 你应该使用。

$output->result[0]->address_components[0]->long_name
于 2013-03-08T07:50:08.587 回答