質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

91.37%

  • PHP

    15140questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • API

    1023questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

PHP: 多次元連想配列から値を取り出したい

解決済

回答 2

投稿 2017/11/26 16:23

  • 評価
  • クリップ 0
  • VIEW 64

S.N.

score 6

はじめに

  • PHP、及びJSONの練習を兼ねてフォームで入力した文字列に反応して緯度、経度を割り出すプログラムを作りたいと考えています。
  • 最終的には、この緯度、経度を使って地図にマッピング、表示までする予定です。受け取った値を、JSのプログラムに渡すつもりです。

プログラム、及び受け取った値

実行プログラムはこちらです。表示までで進めているので、まだ途中です。

<?php
    $place = $_POST['text'];
    $placeURL = "https://maps.googleapis.com/maps/api/geocode/json?address=".$place."&key=YOUR_API_KEY";
    $contents = file_get_contents($placeURL);
    $array = json_decode($contents, true);
    $arrayVal = array_values($array);
    var_dump($arrayVal);
    ?>


ブラウザに表示される値はこちらです。

array(2) { [0]=> array(1) { [0]=> array(5) { ["address_components"]=> array(2) { [0]=> array(3) { ["long_name"]=> string(5) "Tokyo" ["short_name"]=> string(5) "Tokyo" ["types"]=> array(3) { [0]=> string(27) "administrative_area_level_1" [1]=> string(8) "locality" [2]=> string(9) "political" } } [1]=> array(3) { ["long_name"]=> string(5) "Japan" ["short_name"]=> string(2) "JP" ["types"]=> array(2) { [0]=> string(7) "country" [1]=> string(9) "political" } } } ["formatted_address"]=> string(12) "Tokyo, Japan" ["geometry"]=> array(4) { ["bounds"]=> array(2) { ["northeast"]=> array(2) { ["lat"]=> float(35.8986468) ["lng"]=> float(153.9876916) } ["southwest"]=> array(2) { ["lat"]=> float(24.2241404) ["lng"]=> float(138.942758) } } ["location"]=> array(2) { ["lat"]=> float(35.6894875) ["lng"]=> float(139.6917064) } ["location_type"]=> string(11) "APPROXIMATE" ["viewport"]=> array(2) { ["northeast"]=> array(2) { ["lat"]=> float(35.817813) ["lng"]=> float(139.910202) } ["southwest"]=> array(2) { ["lat"]=> float(35.528873) ["lng"]=> float(139.510574) } } } ["place_id"]=> string(27) "ChIJ51cu8IcbXWARiRtXIothAS4" ["types"]=> array(3) { [0]=> string(27) "administrative_area_level_1" [1]=> string(8) "locality" [2]=> string(9) "political" } } } [1]=> string(2) "OK" } 

困っていること

"location"の"lat", "lng"にたどり着けません。。本当に初歩的で大変恐縮ですが、
ここのキーを一緒に考えて頂けますととても嬉しいです。。
ちなみに、文法的には多分(?)問題ないかと思いまして、アロー演算子でアクセスしようと
考えております。

簡単な質問となってしまい、恐れ入りますがお力添えいただきたく思います。
よろしくお願いいたします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 2

+2

echo '<pre>';
var_dump($arrayVal);
echo '</pre>';

と記述して、var_dump();
の結果を成形して、投稿して見ましょう。
入れ子の状態がわかりやすく出力されます。

投稿 2017/11/26 16:32

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/11/26 16:40

    これすごいですね。。!アドバイスありがとうございます。。!
    整形できたので、修正して投稿いたします。

    キャンセル

check解決した方法

0

自分で解決できました。コードは、

$lat = $arrayVal[0][0]["geometry"]["location"]["lat"];
$lng = $arrayVal[0][0]["geometry"]["location"]["lng"];
echo $lat;
echo '</br>';
echo $lng;


こんな感じで、ひたすら画面に出力しながら、「近づいてる近づいてるッ...!」みたいな感じで
目標まで辿っていきました。

投稿 2017/11/29 07:23

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/06 22:59

    このあたりが参考になるかも
    https://qiita.com/ShibuyaKosuke/items/5ba8001b52843edc0fe5

    キャンセル

  • 2017/12/07 07:33

    参考になりました。。!
    今更ですが、これ「ダンピングする」という表現使うんですね。
    あと、クラスのオブジェクトもダンピングできるのは知らなかったです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

91.37%

関連した質問

同じタグがついた質問を見る

  • PHP

    15140questions

    PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

  • API

    1023questions

    APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。