PHPで配列の使い方(定義、値の取得)と、
配列の種類「1次元配列、2次元配列、連想配列」がどのようなものかあるのかを解説します。
PHPに限らずですが「配列を制するものはプログラミングを制する」と言われているほど配列は重要なプログラミングの要素ですので、
まずは「配列とは何者か?」という感覚をつかんでもらえればOKです。
それでは行きましょう!
配列とは
配列は複数の値を1つの変数に入れて使用します。
変数について「変数の宣言と使い方をマスターしよう!」でstring型、int型の説明しました。
string型、int型は1つの変数に1つの値を入れていましたが、配列はarray型を使って複数の値を入れることができます。
配列のイメージは次のようになります。

インデックス番号「0, 1, 2」が振られており、このなかにフルーツ名が入っていて、インデックス番号は 0 を指定したら「バナナ」が取り出せるキーとなっています。
次の「配列の使い方」で、このイメージの配列をソースコードで記述してみます。
配列の使い方
配列を定義してみる
PHPの配列はarray()構文を使って定義します。
[]を使ってarray()を省略してもOKです。
<?php $arr = array("バナナ", "イチゴ", "すいか"); // 次のようにarrayを省略してもOK $arr = ["バナナ", "イチゴ", "すいか"]; ?>
配列の値を取得してみる
変数に定義した配列から値を取得してみましょう。
配列の取得方法はインデックス番号を指定して取得します。
「インデックスを指定して表示する方法」と「ループして表示する方法」の2つのソースコードを書いてみます。
<?php $arr = array("バナナ", "イチゴ", "すいか"); echo "インデックスを指定して表示<br>"; echo $arr[0] . "<br>"; echo $arr[1] . "<br>"; echo $arr[2] . "<br>"; echo "<br>"; echo "ループして表示<br>"; for ($i = 0; $i < count($arr); $i++) { echo $arr[$i] . "<br>"; } ?>
実行結果:

上記のように配列から値を取得できましたか?
この感覚をつかんでおきましょう。
配列の種類
PHPの配列の種類について紹介します。
今回は「1次元配列、2次元配列、連想配列」の3種類について説明します。
1次元配列
これは先ほど「配列の使い方」で説明しましたが、おさらいで「都道府県」を例にソースコードを記述してみます。
<?php $arr = array("東京都", "千葉県", "青森県", "秋田県"); echo "インデックスを指定して表示<br>"; echo $arr[0] . "<br>"; echo $arr[1] . "<br>"; echo $arr[2] . "<br>"; echo $arr[3] . "<br>"; echo "<br>"; echo "ループして表示<br>"; for ($i = 0; $i < count($arr); $i++) { echo $arr[$i] . "<br>"; } ?>
実行結果:

都道府県を表示できました。
配列のイメージは次のような感じです。

2次元配列
2次元配列は、配列の中に配列が入っている状態です。
言葉だと何だか分からないと思いますので、ソースコードを見てみましょう。
<?php $arr = array( array("東京都", "千葉県"), array("青森県", "秋田県") ); echo "インデックスを指定して表示<br>"; echo $arr[0][0] . "<br>"; echo $arr[0][1] . "<br>"; echo $arr[1][0] . "<br>"; echo $arr[1][1] . "<br>"; echo "<br>"; echo "ループして表示<br>"; for ($i = 0; $i < count($arr); $i++) { for ($j = 0; $j < count($arr[$i]); $j++) { echo $arr[$i][$j] . "<br>"; } } ?>
実行結果:

1次元配列と出力結果は同じですが、値の取得には2回ループする必要があります。
2次元配列をイメージで表すと次のようになります。

このように、2次元配列は「行、列」を表すことができます。
この例はインデックス番号なので分かりづらいのですが、「行0 = 関東、行1 = 東北」を表しています。
2次元配列の入れ子と同じ要領で「3次元、4次元」のように入れ子を深くすることもできますが、入れ子が深くなるとループが複雑になるので頭が混乱しますので、できるだけ入れ子は浅くして使いたいものです。
もし、入れ子が複雑になり混乱したときはExcelなどを使って一回表のイメージにして考えると良いです。
連想配列
連想配列はインデックス番号の代わりにキー名称がついた配列です。
データベースから取得した場合など、この連想配列を使って操作することが多いです。
他の配列とは違って、連想配列はインデックス番号がないので、ループするには「foreach」を使用します。
では、ソースコードを見てみましょう。
<?php $arr = array( "tokyo" => "東京都", "chiba" => "千葉県", "aomori" => "青森県", "akita" => "秋田県" ); echo "キーを指定して表示<br>"; echo $arr["tokyo"] . "<br>"; echo $arr["chiba"] . "<br>"; echo $arr["aomori"] . "<br>"; echo $arr["akita"] . "<br>"; echo "<br>"; echo "ループして表示<br>"; foreach ($arr as $val) { echo $val . "<br>"; } ?>
実行結果:

1次元配列、2次元配列とは違ってインデックス番号を使わないので、ソースコードが見やすいですね。
連想配列をイメージで表すと次のようになります。

連想配列はその名のとおり「連想する配列」ですので、キー名が tokyo なら「東京都」が取得できるように、わかりやすいキー名称をつけて連想させましょう。
まとめ
PHPの配列について次の内容で解説しました。
- 配列とは
- 配列の定義、取得する方法
- 配列の種類「1次元配列、2次元配列、連想配列」の使い方とイメージ
システムを作る上で配列は必ずと言っていいほど使用しますので、配列のイメージだけでも覚えておきましょう。
プログラミング学習を挫折せずに続けて成功できる人は
- 「目的目標を明確にすること」
- 「質問・相談できる環境を作ること」
- 「自己解決スキルを身に着けること」
この3つを大切にしてると思います。
ただ漠然とプログラミング学習をしているだけでは
すぐに身に付きませんので、プログラミングスクールがおすすめです。
-
テックキャンプ
本気でIT業界に転職したい方におすすめです。
転職できなかったら全額返金があります。 -
DMM WEBCAMP
国から認定されているスクールです。
やむなく離職中の方など、条件を満たしている方は教育訓練給付金が支給されます。 -
TechAcademy
1週間の無料体験があります。
気軽にスクールを体験したい方向けです。