多次元配列

複数の配列が要素として配列に格納されている。

 

①配列の要素: '値' が複数格納されてる。

連想配列の要素: 'キー' => '値'  が複数格納されてる。

③多次元配列の要素: ①の配列(②連想配列)が複数格納されてる。

 

f:id:aruku-hito:20191116133003p:plain

samuraiBligさんから拝借しました

 

書き方

$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];  // 田中が表示される。

 

===========

 参照記事(ありがとうございました!!)

www.sejuku.net

 

===========