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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

PHP

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

1回答

776閲覧

連想配列格納 ある記述方法がわからない

coresan

総合スコア1

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

PHP

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

1クリップ

投稿2021/09/15 14:59

前提・実現したいこと

json形式の都道府県のデータをphp連想配列にセットして表示したい。

発生している問題・エラーメッセージ

jsonソースコードから
[
都道府県名 => [札幌市中央区,札幌市北区...]
都道府県名 => [札幌市中央区,札幌市北区...
]
のようにセットして表示する際に
下記のような書き方を調べたら見つけたのですが、

foreach($jsonDecode[0] as $value){ foreach($value['city'] as $city){ $prfAndcity[$value['name']][] = $city['city']; } } var_dump($prfAndcity);

$prfAndcity[$value['name']][] の書き方の意味がわかりません。
空の[ ]は何をあらわしているのでしょうか?
連想配列格納は$prfAndcity[$value['name']で十分だと思うのですが、たしかにこれだとうまくいきませんでした。
どなたかご教示よろしくお願いいたします。

jsonのソースコード

[{ "01": { "id": "01", "name": "北海道", "short": "北海道", "kana": "ホッカイドウ", "en": "hokkaido", "city":[ {"citycode":"0010001","city":"札幌市中央区"}, {"citycode":"0010002","city":"札幌市北区"}, {"citycode":"0010003","city":"札幌市東区"}, {"citycode":"0010004","city":"札幌市白石区"}, {"citycode":"0010005","city":"札幌市豊平区"}, {"citycode":"0010006","city":"札幌市南区"}, {"citycode":"0010007","city":"札幌市西区"}, {"citycode":"0010008","city":"札幌市厚別区"}, {"citycode":"0010009","city":"札幌市手稲区"}, {"citycode":"0010010","city":"札幌市清田区"}, {"citycode":"0010011","city":"函館市"}, {"citycode":"0010012","city":"小樽市"}, {"citycode":"0010013","city":"旭川市"}, {"citycode":"0010014","city":"室蘭市"}, {"citycode":"0010015","city":"釧路市"}, {"citycode":"0010016","city":"帯広市"}, {"citycode":"0010017","city":"北見市"}, {"citycode":"0010018","city":"夕張市"}, {"citycode":"0010019","city":"岩見沢市"}, {"citycode":"0010020","city":"網走市"}, {"citycode":"0010021","city":"留萌市"}, {"citycode":"0010022","city":"苫小牧市"}, {"citycode":"0010023","city":"稚内市"}, {"citycode":"0010024","city":"美唄市"}, {"citycode":"0010025","city":"芦別市"}, {"citycode":"0010026","city":"江別市"}, {"citycode":"0010027","city":"赤平市"}, {"citycode":"0010028","city":"紋別市"}, {"citycode":"0010029","city":"士別市"}, {"citycode":"0010030","city":"名寄市"}, {"citycode":"0010031","city":"三笠市"}, {"citycode":"0010032","city":"根室市"}, {"citycode":"0010033","city":"千歳市"}, {"citycode":"0010034","city":"滝川市"}, {"citycode":"0010035","city":"砂川市"}, {"citycode":"0010036","city":"歌志内市"}, {"citycode":"0010037","city":"深川市"}, {"citycode":"0010038","city":"富良野市"}, {"citycode":"0010039","city":"登別市"}, {"citycode":"0010040","city":"恵庭市"}, {"citycode":"0010041","city":"伊達市"}, {"citycode":"0010042","city":"北広島市"}, {"citycode":"0010043","city":"石狩市"}, {"citycode":"0010044","city":"北斗市"}, {"citycode":"0010045","city":"石狩郡"}, {"citycode":"0010046","city":"松前郡"}, {"citycode":"0010047","city":"上磯郡"}, {"citycode":"0010048","city":"亀田郡"}, {"citycode":"0010049","city":"茅部郡"}, {"citycode":"0010050","city":"二海郡"}, {"citycode":"0010051","city":"山越郡"}, {"citycode":"0010052","city":"檜山郡"}, {"citycode":"0010053","city":"爾志郡"}, {"citycode":"0010054","city":"奥尻郡"}, {"citycode":"0010055","city":"瀬棚郡"}, {"citycode":"0010056","city":"久遠郡"}, {"citycode":"0010057","city":"島牧郡"}, {"citycode":"0010058","city":"寿都郡"}, {"citycode":"0010059","city":"磯谷郡"}, {"citycode":"0010060","city":"虻田郡"}, {"citycode":"0010061","city":"岩内郡"}, {"citycode":"0010062","city":"古宇郡"}, {"citycode":"0010063","city":"積丹郡"}, {"citycode":"0010064","city":"古平郡"}, {"citycode":"0010065","city":"余市郡"}, {"citycode":"0010066","city":"空知郡"}, {"citycode":"0010067","city":"夕張郡"}, {"citycode":"0010068","city":"樺戸郡"}, {"citycode":"0010069","city":"雨竜郡"}, {"citycode":"0010070","city":"上川郡"}, {"citycode":"0010071","city":"勇払郡"}, {"citycode":"0010072","city":"中川郡"}, {"citycode":"0010073","city":"増毛郡"}, {"citycode":"0010074","city":"留萌郡"}, {"citycode":"0010075","city":"苫前郡"}, {"citycode":"0010076","city":"天塩郡"}, {"citycode":"0010077","city":"宗谷郡"}, {"citycode":"0010078","city":"枝幸郡"}, {"citycode":"0010079","city":"礼文郡"}, {"citycode":"0010080","city":"利尻郡"}, {"citycode":"0010081","city":"網走郡"}, {"citycode":"0010082","city":"斜里郡"}, {"citycode":"0010083","city":"常呂郡"}, {"citycode":"0010084","city":"紋別郡"}, {"citycode":"0010085","city":"虻田郡"}, {"citycode":"0010086","city":"有珠郡"}, {"citycode":"0010087","city":"白老郡"}, {"citycode":"0010088","city":"沙流郡"}, {"citycode":"0010089","city":"新冠郡"}, {"citycode":"0010090","city":"浦河郡"}, {"citycode":"0010091","city":"様似郡"}, {"citycode":"0010092","city":"幌泉郡"}, {"citycode":"0010093","city":"日高郡"}, {"citycode":"0010094","city":"河東郡"}, {"citycode":"0010095","city":"河西郡"}, {"citycode":"0010096","city":"広尾郡"}, {"citycode":"0010097","city":"足寄郡"}, {"citycode":"0010098","city":"十勝郡"}, {"citycode":"0010099","city":"釧路郡"}, {"citycode":"0010100","city":"厚岸郡"}, {"citycode":"0010101","city":"川上郡"}, {"citycode":"0010102","city":"阿寒郡"}, {"citycode":"0010103","city":"白糠郡"}, {"citycode":"0010104","city":"野付郡"}, {"citycode":"0010105","city":"標津郡"}, {"citycode":"0010106","city":"目梨郡"} ] }, "02": { "id": "02", "name": "青森県", "short": "青森", "kana": "アオモリケン", "en": "aomori", "city":[ {"citycode":"0020001","city":"青森市"}, {"citycode":"0020002","city":"弘前市"}, {"citycode":"0020003","city":"八戸市"}, {"citycode":"0020004","city":"黒石市"}, {"citycode":"0020005","city":"五所川原市"}, {"citycode":"0020006","city":"十和田市"}, {"citycode":"0020007","city":"三沢市"}, {"citycode":"0020008","city":"むつ市"}, {"citycode":"0020009","city":"つがる市"}, {"citycode":"0020010","city":"平川市"}, {"citycode":"0020011","city":"東津軽郡"}, {"citycode":"0020012","city":"西津軽郡"}, {"citycode":"0020013","city":"中津軽郡"}, {"citycode":"0020014","city":"南津軽郡"}, {"citycode":"0020015","city":"北津軽郡"}, {"citycode":"0020016","city":"上北郡"}, {"citycode":"0020017","city":"下北郡"}, {"citycode":"0020018","city":"三戸郡"} ] }, . . . . "47": { "id": "47", "name": "沖縄県", "short": "沖縄", "kana": "オキナワケン", "en": "okinawa", "city":[ {"citycode":"0470001","city":"那覇市"}, {"citycode":"0470002","city":"宜野湾市"}, {"citycode":"0470003","city":"石垣市"}, {"citycode":"0470004","city":"浦添市"}, {"citycode":"0470005","city":"名護市"}, {"citycode":"0470006","city":"糸満市"}, {"citycode":"0470007","city":"沖縄市"}, {"citycode":"0470008","city":"豊見城市"}, {"citycode":"0470009","city":"うるま市"}, {"citycode":"0470010","city":"宮古島市"}, {"citycode":"0470011","city":"南城市"}, {"citycode":"0470012","city":"国頭郡"}, {"citycode":"0470013","city":"中頭郡"}, {"citycode":"0470014","city":"島尻郡"}, {"citycode":"0470015","city":"宮古郡"}, {"citycode":"0470016","city":"八重山郡"} ] } }]

試したこと

ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答1

0

ベストアンサー

空の[ ]は何をあらわしているのでしょうか?

配列に新たな要素を追加することを表しています。
マニュアルを読みましょう。
PHP: 配列 - Manual

投稿2021/09/15 15:17

ku__ra__ge

総合スコア4524

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

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

coresan

2021/09/16 03:09

うまく伝わっておらず申し訳ありません。 []←が追加の意味は把握しております。 自分の考えとしては $prfAndcity[$value['name'] ]= $city['city'] の書き方だけで$value['name']をキーに$city['city']の値を$prfAndcityに格納(これを繰り返し)できると思っています。(実際はできませんでしたが自分の認識はできると思っていた) それを踏まえて $prfAndcity[$value['name']][]= $city['city']は上記とは何が(自分の認識とは)違うのでしょうか。 ご教示よろしくお願いします。
ku__ra__ge

2021/09/16 05:12

$x = array('abc','def'); $x = 'ghi'; ……は、$xに'ghi'を代入します。($xにもともと入っていた配列は上書きされて消える) $x = array('abc','def'); $x[] = 'ghi'; ……は、$x配列に'abc'を追加します。($xは['abc','def', 'ghi']になる) それと同じことで、 $prfAndcity[ $value['name'] ] = $city['city']; は、$prfAndcity連想配列の$value['name']キーに、(現在何が入っていようが)$city['city']を上書き代入します。 $prfAndcity[ $value['name'] ][] = $city['city']; は、$prfAndcity連想配列の$value['name']キーに配列が入っていると想定して、その配列に$city['city']の値を追加します。
coresan

2021/09/16 14:23

ku__ra__geさん 丁寧な回答ありがとうございました。 上記の説明で、全て理解できました。 ネットでこの書き方がヒットしなかったので、とてもスッキリしました。 どうもありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問