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

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

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

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

Q&A

解決済

2回答

1144閲覧

5次元配列が作れません

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

0グッド

0クリップ

投稿2018/10/03 22:32

前提・実現したいこと

phpで5次元配列のデータを日本の地域をテーマに作ろうとしています。
そもそも5次元配列がどのようなものかわかりきっていないうえ、
echo $japan[][][][][]にoffsetを入れても、エラーが出てしまいます。

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

Array to string conversionというエラーが出てしまいました。

該当のソースコード

<?php $asahikawa = array('shinasahikawa','kaguraoka'); $wakkanai = array('nayoro','rumoi'); $kushiro = array('tsuruimura','shiranukacho'); $hakodate = array('hokuto','sikabe'); $aomori = array('aomori','hirosaki'); $iwate = array('hiraizumi','morioka'); $akita = array('akita','ogashi'); $miyagi = array('sendai','ishinomaki'); $fukushima = array('fukushima','soma'); $yamagata = array('yamagata','yonezawa'); $ibaraki = array('mito','tsukuba'); $tochigi = array('utsunomiya','nikko'); $gunma = array('maebasi','takazaki'); $saitama = array('saitama','kawagoe'); $chiba = array('chiba','narita'); $tokyo = array('tokyo','shinagawa'); $kanagawa = array('yokohama','kawasaki'); $nigata = array('nigata','nagaoka'); $ishikawa = array('kanazawa','kaga'); $toyama = array('toyama','takaoka'); $fukui = array('fukui','echizen'); $yamanashi = array('kofu','kai'); $nagano = array('matsumoto','nagano'); $shizuoka = array('shizuoka','hamamatsu'); $aichi = array('nagoya','toyota'); $gifu = array('gifu','gero'); $shiga = array('otsu','hikone'); $kyoto = array('kyoto','maizuru'); $hyogo = array('kobe','himeji'); $osaka= array('osaka','sakai'); $nara = array('nara','kashihara'); $wakayama = array('wakayama','tanabe'); $tottori = array('tottri','kurayoshi'); $shimane = array('matie','ooda'); $okayama = array('okayama','kurashiki'); $hiroshima = array('hiroshima,onomichi'); $yamaguchi = array('yamaguchi','shimonoseki'); $kagawa = array('takamatsu','sanuki'); $ehime = array('matsuyama','imabari'); $tokushima = array('tokushima','naruto'); $kochi = array('kochi','shimannto'); $oita = array('oita','beppu'); $saga = array('saga','karatsu'); $fukuoka = array('fukuoka','kitakyusyu'); $nagasaki = array('nagasaki','sasebo'); $kumamoto = array('kumamoto','yatsushiro'); $miyazaki = array('miyazaki','nichinan'); $kagoshima = array('kagoshima','kanoya'); $okinawa = array('naha','nago'); $hokkaido_N = array($asahikawa,$wakkanai); $hokkaido_S = array($kushiro,$hakodate); $tohoku_N = array($aomori,$iwate,$akita); $tohoku_S = array($miyagi,$fukushima,$yamagata); $kanto_N = array($ibaraki,$tochigi,$gunma,); $kanto_S = array($saitama,$chiba,$tokyo,$kanagawa); $tyubu_N = array($nigata,$ishikawa,$toyama,$fukui); $tyubu_S = array($yamanashi,$nagano,$shizuoka,$aichi,$gifu); $kinnki_N = array($shiga,$kyoto,$hyogo); $kinnki_S = array($osaka,$nara,$wakayama); $tyugoku_N = array($tottori,$shimane); $tyugoku_S = array($okayama,$hiroshima,$yamaguchi); $shikoku_N = array($kagawa,$ehime); $shikoku_S = array($tokushima,$kochi); $kyusyu_N = array($oita,$saga,$fukuoka,$nagasaki); $kyusyu_S = array($kumamoto,$miyazaki,$kagoshima,$okinawa); $hokkaido = array($hokkaido_N,$hokkaido_S); $tohoku = array($tohoku_N,$tohoku_S); $kanto = array($kanto_N,$kanto_S); $tyubu = array($tyubu_N,$tyubu_S); $kinnki = array($kinnki_N,$kinnki_S); $tyugoku = array($tyugoku_N,$tyugoku_S); $shikoku = array($shikoku_N,$shikoku_S); $kyusyu = array($kyusyu_N,$kyusyu_S); $east_N = array($hokkaido,$tohoku); $east_S = array($kanto,$tyubu); $west_N = array($kinnki,$tyugoku); $west_S = array($shikoku,$kyusyu); $east = array($east_N,$east_S); $west = array($west_N,$west_S); $japan = array($east,$west); echo '<pre>'; var_dump($japan); echo '<?pre>'; echo $japan[0][1][1][1][1];

試したこと

何から試したらいいかわかりませんでした。すみません!

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

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

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

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

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

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

spookybird

2018/10/03 23:05

5次元配列がどういうものかわかっていないのに5次元配列を作ろうとしているという意味がよくわからないのですが、なぜそんなことをする必要があるんでしょうか。
退会済みユーザー

退会済みユーザー

2018/10/03 23:20

これは6次元配列なのでは?
退会済みユーザー

退会済みユーザー

2018/10/03 23:30

二次元配列の仕組みを学校で習い、応用で5次元を考えてみる課題が出たため、試行錯誤しながら作っています!
退会済みユーザー

退会済みユーザー

2018/10/03 23:31

6次元でechoしたらできました!1つ多くなってしまっていたんですね...
guest

回答2

0

ベストアンサー

PHP

1echo $japan[0][1][1][1][1];

この部分が配列の最下層まで達していないから、文字列ではない(配列が渡されている)、と怒られています。

PHP

1echo $japan[0][1][1][1][1][1];

とすればうまくいくでしょう。

何を実現なさりたいのかは存じ上げませんが、データベースなどを使った方がよいと思います。

投稿2018/10/03 23:27

takg

総合スコア125

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

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

退会済みユーザー

退会済みユーザー

2018/10/03 23:35

ありがとうございます!二次元配列を学校で習った上で、多次元配列を考えてみるという課題が出たため、理解を深めることを目的として作っているだけです! 自分のわかってない点が絞れてきました!ありがとうございます!
takg

2018/10/03 23:37

学校の課題でしたか。 よかったです。 がんばってください。
退会済みユーザー

退会済みユーザー

2018/10/04 00:02

ありがとうございます!
guest

0

5次元配列がなにか、というのを回答します。
まずここが理解できていないことが問題です。PHPどうこう以前に。

まず、1次元配列とは
["1", "2", "3", ...]
こうです。

2次元配列とは

[ ["1-1", "1-2", ...], ["2-1", ...], ... ]

こうです。
単純に「配列の中に配列」が入っています。

一気にすっとばして5次元配列を考えると

[ [ [ [ ["1-1-1-1-1", "1-1-1-1-2", ...], ["1-1-1-2-1", ...], ... ], [ ["1-1-2-1-1", ...], ... ], ... ], [ [ ["1-2-1-1-1", ...], ... ], ... ], ... ], [ [ [ ["2-1-1-1-1", ...], ... ], ... ], ... ], ... ]

こんな構造です。
配列(1)の中に配列(2)、その中に配列(3)、その中に配列(4)、さらにその中に配列(5)です。
日本語で言うと意味不明です。

空間を考えようとすると脳みそが破綻すると思うので諦めてください。
4次元の時点で、一般人が脳内で想像できる空間上にマッピングするのは無理です。

投稿2018/10/03 23:41

spookybird

総合スコア1803

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

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

退会済みユーザー

退会済みユーザー

2018/10/04 00:02

ありがとうございます!5次元という概念がより鮮明になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問