多次元配列
複数の配列が要素として配列に格納されている。
①配列の要素: '値' が複数格納されてる。
②連想配列の要素: 'キー' => '値' が複数格納されてる。
③多次元配列の要素: ①の配列(②連想配列)が複数格納されてる。
書き方
$array = [
['田中', '25', '女性'], // 1つの要素が配列A
['樋口', '32', '男性'], // 1つの要素が配列B
['山本', '16', '女性'] // 1つの要素が配列C
];
要素の指定方法
多次元配列は、要素が配列であるだけで基本構造は、配列と変わらないため、以下で出力できる。
配列A:index0 ➡ $array[0] で指定
配列B:index1 ➡ $array[1] で指定
配列C:index2 ➡ $array[2] で指定
例えば…
print_r($array[0]);
➡Array ( [0] => 田中 [1] => 25 [2] => 女性 )
次に、$arrayの要素の、配列Aの要素を出力したいときは以下になる。
$array[2][0] ➡ '山本'
$array[2][1] ➡ '16'
$array[2][2] ➡ '女性'
echo $array[2][2] . 'の' . $array[2][0] . 'さんは、' . $array[2][1] . 'です。';
女性の山本さんは、16です。
多次元配列の配列要素の配列を出力するときは、配列変数に
該当の配列要素のindex番号を指定し、その後ろに指定した配列内で出力したい要素のindex番号を指定する。
foreach文での出力方法
配列の要素文ループするforeach文の配列と同じ。
foreach($array as $value) の$valueが配列の要素のためその後ろにでindex番号を指定する。
foreach($array as $value){
echo $value[2] . 'の' . $value[0] . 'さんは、' . $value[1] . 'です。' . '<br>';
}
女性の田中さんは、25です。
男性の樋口さんは、32です。
女性の山本さんは、16です。
要素を追加する
配列の要素追加を思い出してほしい。
$array = ' 要素 ' ;
多次元配列もそれと同じで以下で追加できる。
$array[] = ['中村', '26', '男性'] ;
もしも多次元配列の要素が連想配列だった場合
$array = [
'東京都の美人' => ['田中', '25', '女性'], // 1つの要素が配列A
'神奈川の美人' => ['樋口', '32', '女性'], // 1つの要素が配列B
'大阪府の美人' => ['山本', '16', '女性'] // 1つの要素が配列C
];
上記のように、要素の配列が、連想配列の場合は以下のように出力する。
$array['東京都の美人'][1]; // 25
ちなみに、配列全般に言えることだが配列のみを指定しても、echoで表示することはできない。ちゃんと配列内の値を指定すればechoできる。
print_r()なら配列をしてシテもプログラム画面上には表示される。
× $array['東京都の美人']; // ['田中', '25', '女性'] が表示されるわけではない。
〇 $array['東京都の美人'][1]; // 田中が表示される。
===========
参照記事(ありがとうございました!!)
===========