※前回の講座がまだの人はこちら
【PHP入門⑤】繰り返し ~初心者でも安心!基礎から学べるプログラミング講座~
配列とは?
配列とは、複数の値を格納できる変数のことです。
今まで変数に値を入れる場合は、値の数だけ変数を用意していました。
人のプロフィールを変数に入れたい場合を考えてみてください。
この太郎君のプロフィールを変数へ入れる場合は
$name = "太郎"; $age = 8; $gender = "男";
この様に入れると思います。
では、4人分のプロフィールを変数へ入れる場合はどうしますか?
$name1 = "太郎"; $age1 = 8; $name2 = "花子"; $age2 = 16; $name3 = "桃子"; $age3 = 28; $name4 = "和夫"; $age4 = 35;
それぞれ変数を作成し、どの人のプロフィールか分かる様にすると思います。(1:太郎,2:花子,3:桃子,4:和夫)
ただ、プロフィールが増えれば増える程、変数も増やさないといけない上に、間違えて違う人のデータを取ってくるかもしれません。
そこで配列を使えば、複数の値を一つの変数へ入れることが可能なので
人単位でプロフィールを管理することが出来ます。
配列
一つの変数に複数の値を格納するってイメージが付きにくいと思います。
変数の説明で箱をイメージしてもらいました。
※変数編はこちら→【PHP入門②】変数 ~初心者でも安心!基礎から学べるプログラミング講座~
配列の場合は、その箱が繋がっているイメージで、それぞれの箱にデータが格納できます。
配列の作成
配列の作成方法は複数あります。
$profile = array(); $profile = [];
どちらの書き方でも、「$profileという変数を配列にします」という意味になります。
配列の構造
配列を作成した時、それぞれの箱を区別することが可能です。
箱一つ一つに数字が自動で振られ、その数字によって箱の場所がわかる様になってます。
データの追加
配列にデータを入れる方法は、場所を指定して入れる方法と配列の最後尾に入れる方法があります。
場所を指定して入れる場合は、数字を指定
→$profileという配列の”1″の箱に’太郎’を入れる
最後尾に入れる場合は、何も指定しない
→$profileという配列の最後尾に8を入れる(新しく”4″の箱を追加)
プログラムはそれぞれ以下の様に書きます。
$profile[1] = '太郎'; $profile[] = 8;
配列の初期値
以下の配列を考えてみます。
$hanakoという配列を作成し、以下に値を入れる。
0に名前(花子)
1に年齢(16)
2に性別(女)
$hanakoという配列に追加で、趣味(ピアノ)の値を入れる。
$hanako = array(); $hanako[0] = '花子'; $hanako[1] = 16; $hanako[2] = '女'; $hanako[] = 'ピアノ';
この様に書けると思います。
ただ、配列は作成と同時に初期値として、値を入れることができます。
書き方は複数存在し、以下の様に書きます。
$hanako = array('花子', 16, '女'); $hanako = ['花子', 16, '女'];
それぞれの値が入る場所は、指定していない為、先頭から0,1,2と順番になります。
配列の中身の表示
配列に値を入れたら、配列の中身を表示させたいはずです。
配列の中身は、場所を指定してあげて、変数と同様に扱うことが可能です。
echo $hanako[0]; echo $hanako[1]; echo $hanako[2];
上から順番に、「花子」「16」「女」と表示されます。
※場所を指定しないと値は表示されないので注意
配列の中身を複数表示させたい時、for文を使えば簡単に出来ます。
for($i=0; $i<3; $i++) { echo $hanako[$i]; }
$iを「0から3」まで繰り返すfor文です。
条件「$i<3」の3は、配列の長さを指しています。(配列の箱の数と考えてくれれば良いです。)
「echo $hanako[$i]」とすることで、$iが0から1ずつ増えて、順番に全ての値を表示することが出来ます。
配列の長さが分からない場合、for文の条件をどうすれば良いか困ると思います。
そこで、配列ではforeach文が良く使われます。
foreach($hanako as $value) { echo $value; }
foreach文は配列の中身を0から順番に全て取得するまで繰り返す、繰り返し文です。
$valueに配列の値が入ります。($valueは任意の変数名を自分で指定してください。)
$hanakoという配列の0番目には、「花子」が入っているため、最初$valueには「花子」が入ります。foreach文内の処理を行ったら、次は配列の1番目を見に行きます。1番目には、「16」が入っているため、$valueには「16」が上書きされ、foreach文内の処理が行われます。2番目も同様の処理を行い、3番目は値が入っていないため、foreach文を抜けます。
まとめ
PHPにおいて配列は、とても重要で至る所で使います。
配列の仕組みを理解し、扱える様に心掛けてください。
配列の講座はまだ続きます。次回は、少し複雑な配列を紹介します。
次回講座:連想配列
【PHP入門⑦】連想配列 ~初心者でも安心!基礎から学べるプログラミング講座~