PHPで値を管理するの欠かせないのが、配列です。
ですが、PHP初心者にとって配列の概念って分かりづらいですよね。
そこで今回はPHP初心者に向けて、
・そもそも配列や変数って何?
・配列の値ってどうやって操作するの?
をご紹介します。
PHP初心者がつまづきやすいポイントを分かりやすく解説します。
変数や配列っていまいちよく分からない方は、ぜひ最後まで読んで理解を深めてくださいね。
配列とは?
配列の解説をする前に、まずは変数についておさらいをしましょう。
変数とは、1つの値を入れておける’箱’のことです。例えば、
1 2 3 |
$color = 'red'; var_dump($color); // red |
このように、phpで値を扱いたい場合、基本的に変数を利用します。
しかし、時には変数をグループ分けしたい時もあります。
1 2 3 4 5 |
$name1 = '山田'; //男 $name2 = '佐藤'; //男 $name3 = '小林'; //女 $name4 = '石井'; //女 $name5 = '鈴木'; //男 |
これらの人を男女のグループで分けたい時、使えるのが配列です。
配列では、複数の値を管理することができます。
1 2 3 4 |
$man = ['山田', '佐藤', '鈴木']; $woman = ['小林', '石井']; var_dump($man); // array([0] => 山田 [1] => 佐藤 [2] => 鈴木) |
これで、男女のグループ分けができました。
さらに、名前だけでなく年齢も管理したい時はどうでしょうか?
1 2 3 4 5 6 7 8 |
$name1 = ['name' => '山田', 'age' => 10]; $name2 = ['name' => '佐藤', 'age' => 9]; $name3 = ['name' => '小林', 'age' => 11]; $name4 = ['name' => '石井', 'age' => 10]; $name5 = ['name' => '鈴木', 'age' => 13]; $man = [$name1, $name2, $name5]; $woman = [$name3, $name4]; |
配列では、キー(添字)と値をペアにして管理することができます。
$name1から$name5の変数には、名前と年齢のデータが入っており、それをグループ分けしています。
インデックス配列と連想配列
何となく配列のイメージがついたと思うので、もう少し詳しく説明しましょう。
配列には値だけが入っているインデックス配列と、キー(添字)と値が入っている連想配列があります。
1 2 3 4 5 |
//インデックス配列 $man = ['山田', '佐藤', '鈴木']; //連想配列 $name1 = ['name' => '山田', 'age' => 10]; |
インデックス配列では、値の並び順に番号が振られます。
注意するべきなのは、始まる番号が0からという点です。
上の例で言えば、’山田’の番号は0となります。
インデックス配列は、番号をキーとした連想配列と見ることができますが、中の値を並べ替えたりした場合は新たに番号が振られるため、番号と値がペアになっていない点に注意が必要です。
配列の値を取り出す
インデックス配列で値にアクセスするには、この番号を指定します。
1 2 3 |
$man = ['山田', '佐藤', '鈴木']; var_dump($man[0]); // 山田 |
対して、連想配列ではキーを指定して値にアクセスします。
1 2 3 |
$name1 = ['name' => '山田', 'age' => 10]; var_dump($name1['name']); // ’山田' |
配列はarray()で作ることもできます。
1 2 3 |
$man = array('山田', '佐藤', '鈴木'); $name1 = array('name' => '山田', 'age' => 10); |
array()を使った書き方も、[]を使った書き方も内容に違いはありません。
ただし、[]を使った書き方はphp5.4以降で使える書き方ですので、古い環境では使えません。
配列に値を追加する
配列には、後から値を追加することができます。例えば、
1 2 3 4 |
$man = ['山田', '佐藤', '鈴木']; $man[] = '木村'; var_dump($man); // array([0] => 山田 [1] => 佐藤 [2] => 鈴木 [3] => 木村) |
このように、4番目に木村さんが追加されました
キーを指定しない場合、配列の最後に追加されます。
また、キーを指定して追加することもできます。
1 2 3 4 |
$name1 = ['name' => '山田', 'age' => 10]; $name1['address'] = '東京'; var_dump($name1); // array( [name] => 山田 [age] => 10 [address] => 東京) |
キー:address、値:東京 が追加されました
配列の値を変更する
配列の値を変更する場合、キーを指定して新しい値を上書きします。例えば
1 2 3 4 |
$man = ['山田', '佐藤', '鈴木']; $man[1] = '木村'; var_dump($man); // array([0] => 山田 [1] => 木村 [2] => 鈴木) |
このように、2番目が佐藤さんから木村さんへ変更されています。
連想配列の場合も同様に、
1 2 3 4 |
$name1 = ['name' => '山田', 'age' => 10]; $name1['age'] = 11; var_dump($name1); // array( [name] => 山田 [age] => 11) |
山田さんの年齢が10から11へ変更されています。
まとめ
今回は配列について、
・配列の書き方
・インデックス配列と連想配列の違い
・配列の値を取り出す方法
・配列へ値を追加する方法
を解説しました。
phpにおいて配列の操作は必要不可欠なものですので、しっかりと理解できるようにしておきましょう。