※前回の講座がまだの人はこちら
【PHP入門⑥】配列 ~初心者でも安心!基礎から学べるプログラミング講座~
配列の復習
PHPの配列について一通りイメージできたと思います。
ここで、フルーツ屋について考えてみます。
フルーツ屋は、フルーツを入荷して、お客様へ売ることが主な仕事です。
それだけではなく、フルーツの管理も行う必要があります。
今回は、フルーツの在庫管理を考えてみます。
リンゴ:3個
ぶどう:5個
バナナ:21本
オレンジ:16個
これらのフルーツの在庫を管理するプログラムを書くとします。
一番わかりやすい方法は、フルーツそれぞれ変数を用意して、そこに在庫の値を入れる方法です。
$apple = 3; $grape = 5; $banana = 21; $orange = 16;
しかし、これではフルーツの数だけ変数を用意しなくてはなりません。
そこで、フルーツという配列を用意して、在庫数を入れることにします。
$fruits = array(3,5,21,16);
これで以下の様に在庫数が保持できました。
fruits[0]にリンゴ
fruits[1]にぶどう
fruits[2]にバナナ
fruits[3]にオレンジ
バナナの在庫数を確認したい場合は
echo $fruits[2];
この様に確認することができます。
ただ、このままでは「バナナは2」という情報を覚えなければ、バナナの在庫数は確認できないため、少し面倒に感じます。
連想配列
配列の番号(0,1,2,3…)の部分は、数字である必要がなく、自分で名前を付けることができます。
例えば、リンゴの在庫数を入れる箱に「’apple’」と名前を付けることで、「’apple’」の中を見ればリンゴの在庫数を知ることができます。
これで、番号とフルーツの関係を覚える必要がなく、管理がしやすくなります。
この様に名前を付ける配列のことを連想配列と言います。
また、「’apple’」や「’grape’」の様に、付けた名前のことをキーと呼びます。
連想配列の作成
連想配列は以下の様にして作ります。
$配列名 = array( キー1 => 値1, キー2 => 値2 );
今まではarray()の中に値をカンマ区切りで入れることで、初期値を持った配列を作成していました。
連想配列はキーの作成が必須のため、キーと値を定義する必要があります。
今回は、フルーツの名前をキーにして、在庫数を値として入れます。
$fruits = array( 'apple' => 3, 'grape' => 5, 'banana' => 21, 'orange' => 16 );
連想配列へデータの追加
新たに「もも」を40個入荷したとします。
$fruits配列に「もも」のデータを追加します。
既存の連想配列へのデータ追加も、キーを指定して、値を入れるだけで良いです。
$fruits['peach'] = 40;
これで新しく’peach’というキーに40というデータが追加されました。
既存のキーに値を入れたら、上書きされるので、データを追加する時は注意してください。
連想配列の表示
今まで番号だった部分が文字列に変わっているだけで、扱い方は従来の配列と一緒です。
ぶどうの在庫数を確認したい場合は
echo $fruits['grape'];
と書きます。
前回の講座で紹介した、foreach文もそのまま使えます。
foreach($fruits as $value) { echo $value; }
ただ、foreach文の書き方はこれだけではありません。
連想配列に適したforeach文の書き方があります。
foreach($fruits as $key => $value) { echo $key . ":" . $value; }
今までは、配列の値のみ取得していましたが、この書き方だとキーも取得できます。
$keyの部分にキーが入り、$valueに値が入ります。(両方、任意の変数名を付けれます。)
これは「apple:3」「banana:21」の様に表示されます。
キーを取得する順番は、配列にキーを入れた順番になります。
連想配列のキーは、意味のある文字列を設定することが多いため、頻繁にキーも取得します。
キーを使いたいと思った場合は、このforeach文を使って下さい。
まとめ
今回は少し複雑な配列を紹介しました。
連想配列は、PHPにおいて頻繁に使われます。
キーを使いこなせたら、様々な値の管理がやりやすくなります。
次回講座:多次元配列
【PHP入門⑧】多次元配列 ~初心者でも安心!基礎から学べるプログラミング講座~