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

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

新規登録して質問してみよう
ただいま回答率
85.48%
多次元配列

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

PHP

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

Q&A

解決済

2回答

5291閲覧

[PHP]多次元配列の変数展開ができない。

kosumihub

総合スコア17

多次元配列

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

PHP

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

0グッド

0クリップ

投稿2018/02/20 07:30

php

1$menus = array( 2 array('name' => 'CURRY', 'price' => 900), 3 array('name' => 'PASTA', 'price' => 1200), 4 array('name' => 'COFFEE', 'price' => 600) 5); 6 7$menu 8 9echo $menus[1]['name']; //'PASTA' 10echo "${menus[1]['name']}"; //エラー

多次元配列を文字列中で変数展開することはできないのでしょうか。
文字列を連結する形で出力させることはできますが、多次元でない配列は変数展開できて、多次元配列が変数展開できないのかと気になっています。

よろしくお願いします。

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

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

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

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

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

guest

回答2

0

ベストアンサー

連想配列の場合は$の外ですね。

php

1echo "{$menus[1]['name']}";

確かに${var}で変数展開はできますが、ケースで外にしたり中にしたりというのはミスの元となるので{$var}と外にするという癖をつけておいたほうが良いです。

投稿2018/02/20 07:35

編集2018/02/20 07:37
m.ts10806

総合スコア80850

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

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

kosumihub

2018/02/20 07:45

中にしなければならないと思い込んでいました。 的確なツッコミありがとうございます。
guest

0

普通に展開されますよ

PHP

1$menus = array( 2 array('name' => 'CURRY', 'price' => 900), 3 array('name' => 'PASTA', 'price' => 1200), 4 array('name' => 'COFFEE', 'price' => 600) 5); 6print <<<eof 7test{$menus[0]["name"]}test{$menus[0]["price"]}test<br> 8test{$menus[1]["name"]}test{$menus[1]["price"]}test<br> 9test{$menus[1]["name"]}test{$menus[2]["price"]}test<br> 10eof;

nameがCURRYのpriceを表示したい場合は直接アクセスする方法がないので
なんらかのフィルタ関数を利用することになります

投稿2018/02/20 07:36

yambejp

総合スコア114784

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

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

m.ts10806

2018/02/20 07:43

私はヒアドキュメント使い始めたときに「$も含めて{}囲まないと通らない」って気づきました。
kosumihub

2018/02/20 07:48

関連する情報までご丁寧にありがとうございます。 参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問