PHP 多次元配列 【初級編 第18回】
多次元配列について
前回は配列について記載しました。
今回は多次元配列について記載したいと思います。
多次元配列の概要
多次元配列とは、 配列の中にさらに配列を作成するというイメージです。
配列名にキーを2つならべることで、最初のキーに対して要素を作成することができます。
以下のようにして代入することで、
$hairetsu[0] と $hairetsu[1] に対してさらに要素を作成しています。
これを2次元配列と呼びます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php $hairetsu [0][0] = "値 1<br>" ; $hairetsu [0][1] = "値 2<br>" ; $hairetsu [0][2] = "値 3<br>" ; $hairetsu [1][0] = "値 4<br>" ; $hairetsu [1][1] = "値 5<br>" ; $hairetsu [1][2] = "値 6<br>" ; $hairetsu [1][3] = "値 7<br>" ; echo $hairetsu [0][0]; echo $hairetsu [0][1]; echo $hairetsu [0][2]; echo $hairetsu [1][0]; echo $hairetsu [1][1]; echo $hairetsu [1][2]; echo $hairetsu [1][3]; ?> |
このように縦並びしかなかった箱が横並びにも値を格納できるようになったイメージになります。
また $hairetsu[0] と $hairetsu[1] で要素数の数は一致させる必要はありません。
キーの省略について
前回配列のところで記述した、キーの省略もすることができます。
ただし最初のキーまで省略してしまうと、
最初のキーだけが増えていってしまいます。
$hairetsu[][] = “値 1
“; // $hairetsu[0][0] とおなじ
$hairetsu[][] = “値 1
“; // $hairetsu[1][0] とおなじ
$hairetsu[][] = “値 1
“; // $hairetsu[2][0] とおなじ
そのため、以下のように echoで表示したい場合は、最初のキーは指定する必要があります。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php $hairetsu [0][] = "値 1<br>" ; $hairetsu [0][] = "値 2<br>" ; $hairetsu [0][] = "値 3<br>" ; $hairetsu [1][] = "値 4<br>" ; $hairetsu [1][] = "値 5<br>" ; $hairetsu [1][] = "値 6<br>" ; $hairetsu [1][] = "値 7<br>" ; echo $hairetsu [0][0]; echo $hairetsu [0][1]; echo $hairetsu [0][2]; echo $hairetsu [1][0]; echo $hairetsu [1][1]; echo $hairetsu [1][2]; echo $hairetsu [1][3]; ?> |
文字列を使用した多次元配列
また配列名に文字列(連想配列)を使用することもできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <?php $hairetsu [ "a" ][ "a" ] = 1000; $hairetsu [ "a" ][ "b" ] = 2000; $hairetsu [ "a" ][ "c" ] = 3000; $hairetsu [ "b" ][ "a" ] = 10000; $hairetsu [ "b" ][ "b" ] = 20000; $hairetsu [ "b" ][ "c" ] = 30000; echo $hairetsu [ "a" ][ "a" ]. "<br>" ; echo $hairetsu [ "a" ][ "b" ]. "<br>" ;; echo $hairetsu [ "a" ][ "c" ]. "<br>" ;; echo $hairetsu [ "b" ][ "a" ]. "<br>" ;; echo $hairetsu [ "b" ][ "b" ]. "<br>" ;; echo $hairetsu [ "b" ][ "c" ]. "<br>" ;; ?> |