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

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

新規登録して質問してみよう
ただいま回答率
85.50%
PHP

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

API

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

Q&A

解決済

2回答

7097閲覧

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

S.N.

総合スコア21

PHP

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

API

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

0グッド

0クリップ

投稿2017/11/26 07:23

#はじめに

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

#プログラム、及び受け取った値
実行プログラムはこちらです。表示までで進めているので、まだ途中です。

PHP

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

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

php

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

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

投稿2017/11/26 07:32

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

S.N.

2017/11/26 07:40

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

0

自己解決

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

PHP

1$lat = $arrayVal[0][0]["geometry"]["location"]["lat"]; 2$lng = $arrayVal[0][0]["geometry"]["location"]["lng"]; 3echo $lat; 4echo '</br>'; 5echo $lng;

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

投稿2017/11/28 22:23

S.N.

総合スコア21

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

S.N.

2017/12/06 22:33

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問