-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

atcual マッピングをStdClassjson に使用すると、扱いが煩わしい場合があります。構造全体を連想配列に強制すると、はるかに簡単になります。

$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 を使用する必要があります。これは、Google が返すデータです。

$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 に答える