配列(array)とは?PHP初心者向けに配列の概念を解説!
PHPがよくわからなくて調べごとをしているとよく出てくるのが配列(array)です。もしかしたらarrayってなんだっていうことで調べてたどりついた方もいるかも知れませんが、arrayは配列です。
この記事ではPHPによる配列の取り扱いについて簡単に解説をします。超初心者でもまずは概念を理解してもらいやすいように図多めで解説していきます。
配列は難しく捉えられがちですが、すごく便利でなおかつ概念を理解するぐらいは結構簡単です。
自分でPHPをゴリゴリ書いたりしないけど、WordPressとか使う関係である程度PHPを読みとけるようになっておきたいよ、という人はこの記事で十分ではないかと思います。
配列の概念を理解する
配列というのは複数のデータを整理して1つの大きな箱に入れるイメージです。
上図では0〜4までの複数の小箱にデータが入った状態で大きな箱にまとまっています。この複数のデータをまとめた大きな箱を配列といいます。このようにデータを1つの箱にまとめることができるのが配列です。
ちなみに0〜4の小箱番号を添字といい、配列の添字は0から始まります。そしてデータは値と呼ばれ、それぞれの小箱に入るイメージです。
もう少し具体的に説明をします。
例えば5店舗あるチェーン店の店舗名を配列変数shopに格納するとします。仮に店名をA,B,C,D,Eとします。その場合先ほどの配列のイメージ図は以下のようになります。
少しおさらいしますが、小箱にふられた番号は“添字”といいます。各小箱に入ったデータは“値”といわれます。
つまりこの配列変数$shopの中にはA,B,C,D,Eという各ショップの名前(値)が、添字に紐付いた形で格納されています。
配列変数を作ってみる
では実際に$shopという配列変数にA〜Eまで店名(値)を入れてみます。
1 2 3 4 5 6 7 8 9 |
<?php $shop = [ 'A', 'B', 'C', 'D', 'E' ]; ?> |
これで$shopにA〜Eまでの店名が配列として格納されました。先ほどのイメージ図通り、キー0の小箱から順にA,B,C…と入っていきます。
配列変数から値を取り出す
では次に配列変数から値を取り出してみましょう。ここで重要なのは先ほど触れた通り、配列というのは“添字”と“値”が紐付いているということです。つまり配列変数からデータを取り出そうと思ったら、“添字”を指定してあげればいいのです。
1 2 3 4 5 6 7 8 9 10 |
<?php $shop = [ 'A', 'B', 'C', 'D', 'E' ]; echo $shop[2]; ?> |
表示結果
C
$shop[2]の“2”は添字を指定しています。添字は0から始まっているので、2というのは3番目のCですね。
配列変数から値をすべて取り出す
$shopという配列変数があればショップ一覧を表示することはとても簡単です。以下のようにforeach文で繰り返し処理をして配列の中身を取り出していきます。
1 2 3 4 5 6 7 8 9 10 11 12 |
<?php $shop = [ 'A', 'B', 'C', 'D', 'E' ]; foreach($shop as $value){ echo $value; } ?> |
出力結果は次のようになります
ABCDE
連想配列
添字は0から始まる番号ですが、番号だと管理しにくいので任意の文字列(キー)にすることもできます。これを連想配列といいます。例えばA〜E店ごとの売上を配列にする場合、下図のような連想配列にするとわかりやすいです。
連想配列で配列変数をつくって、C店の売上を表示させてみましょう。
1 2 3 4 5 6 7 8 9 10 |
<?php $shop = [ 'A'=>'30万', 'B'=>'45万', 'C'=>'25万', 'D'=>'70万', 'E'=>'50万' ]; echo $shop['B']; ?> |
表示結果
45万
C店の売上を出力する場合、キーが店名になっているので、データを取り出すときに先ほどのecho $shop[2];のように数字で指定するよりわかりやすいですよね。
配列が便利な理由
このように配列は1つの変数に複数のデータを入れることができ、さらにそれを繰り返し処理で一覧表示させたり、必要なデータだけ抜き出したりできます。
実際によく使われる配列は多次元配列といって配列の中にさらに配列が入っていたりします。
$shopの中にさらに配列が入っている感じですね。多次元配列だと、A~Eの店ごとの売上や都道府県などのデータも変数に格納することができます。
PHPの書き方も基本的な配列について理解していれば、多次元配列はすぐに理解はできます。
基本的な配列の概念を理解いただけたでしょうか。自分ですらすら書けなくても、配列の概念だけ理解しておけばとりあえずコードを読みとく力は格段にアップするのではないでしょうか。
特にWordPress開発などの現場では非プログラマーがPHPをいじることがよくありますが、配列でつまずくことも珍しくありませんので、配列の概念を紹介しました。