前回までに学んだ、「変数」の1つである「配列」について5回目~6回目を使って、説明していきます。
プログラム初心者が最初につまづき易い場所なので、少し説明を多くやっていきたいと思います。
ここを見ている皆さんは4回目まで来れたので、この先も行けるはずです。
それでは、早速始めましょう!
配列の宣言と代入
配列(Array)とは変数の種類の1つです。
前回学んだ変数のことを思い出してみましょう。
<?php
$mozi = 'もじ';
$kazu = 6;
変数とは、値(数字、文字など)を入れておくための「箱」の様なものです。
1つの変数には、1つの値しか保持できません。
配列では、1つの変数の中に複数の値を入れることが出来ます。
<?php
$hairetsu = array();
$hairetsu[] = 10;
$hairetsu[] = 20;
print_r($hairetsu);
これを実行してみると、以下のようになります。
Array ( [0] => 10 [1] => 20 )
$hairetsuが配列になっていると言うことが、実行結果の「Array」と言う文字とからもわかります。
では、各コードがなにをやっているのかを見ていきます。
3行目
$hairetsu = array();
$hairetsuと言う変数を、配列とし使えるように用意(宣言)しています。
array() と書いていますが、下記の内容でも同じです。
$hairetsu = [];
php5.4以降では、配列を宣言する際に array() と書かず、[] だけでよくなりました。
Javascriptなどでも、同じような記述が出来るので同じように覚えておくと、いいかもしれません。
4~5行目
$hairetsu[] = 10;
$hairetsu[] = 20;
4行目で、$hairetsuの中に10を入れています。
5行目では、$hairetsuに対して20を入れています。
配列に値を入れる際には、変数に「[]」を付けてあげることで値を入れていくことが可能です。
配列に値を入れる際に、以下の方法でも可能です。
array_push($hairetsu, 10);
6行目
print_r($hairetsu);
echoでは、配列をそのまま表示できないため、配列でも表示が可能なprint_rを利用し画面への出力を行っています。
出力された結果を見ると、[0] => 10、[1] => 20と表示されています。
配列の中に値を入れた場合、自動的に入れた順番(インデックス)が設定されます。
そしてここが、つまづき易いポイントですが、配列の順番は0から始まります。
そのため、$hairetsuに最初に入れた10に対しては、0と言うインデックス(0番目)が、2つ目に入れた20に対しては、1と言うインデックス(1番目)が設定されています。
4~5行目で2回にわけて値を入れましたが、最初から入れる値がわかっている場合には、下記のようにすることも可能です。
$hairetsu = [
10,
20,
];
配列の取得
先ほどのコードでは、配列への値の設定を行いました。
今度は、配列に入れた値を取得していきます。
<?php
$hairetsu = [
10,
20,
];
echo $hairetsu[0];
echo $hairetsu[1];
これを実行してみると、以下のようになります。
1020
改行されていないので、10と20が続けて表示されていますが、$hairetsuに入れられた10と20が出力されています。
配列の値を指定して取得したい場合には、インデックスを指定することで値を取り出すことが可能です。
指定の仕方は、8~9行目のように変数に「[取得したいインデックス]」を記述することで特定の値を取り出せます。
この例の場合、インデックスの0には10が、インデックスの1には20が入っているため、$hairetsu[0]を表示すると10が、$hairetsu[1]を指定すると20が出力されます。
では、以下のように存在しない配列を指定した場合に、どうなるかも見てみましょう。
echo $hairetsu[2];
この内容を10行目に追加し実行してみると、以下のようになります。
PHP Notice: Undefined offset: 2 in test.php on line 10
Undefined offset: 2と表示され、配列の中に「2」と言うインデックスはないと言うエラーが表示されます。
エラーとならない様に、配列から値を取得する際に存在しないインデックスを、参照しないよう気を付けましょう。
今回は、配列に値を入れる、入れた値を取り出すところをやってみました。
次回は配列の中身を操作していきます。