プログラミング言語

【PHP入門⑦】連想配列 ~初心者でも安心!基礎から学べるプログラミング講座~

プログラミング言語

※前回の講座がまだの人はこちら
【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入門⑧】多次元配列 ~初心者でも安心!基礎から学べるプログラミング講座~

タイトルとURLをコピーしました