フリーPHPスクリプト配布サイト。
変数には1つの値しか保存できませんが、配列を使用すれば複数の値を保存することができます。
配列を作成するには、以下のように書きます。
<?php
$fruit[] = "リンゴ";
$fruit[] = "ミカン";
$fruit[] = "ブドウ";
echo $fruit[0];
echo $fruit[1];
echo $fruit[2];
?>
これを実行すると、ブラウザに リンゴミカンブドウ
と表示されます。
変数のときと同様に配列名の最初に $
を付け、さらに []
内に番号をつけて区別します。値を代入するとき、[]
内に番号を指定しないと、0
から順に番号が割り振られます。(1からでは無いので注意してください。)変数の場合、同じ変数に値を代入すると以前の値が消去されましたが、配列の場合は順に保持することができます。
配列は以下のように、複数の箱が連なって一つになっているイメージです。
上の例での配列 fruit
の内容を表にすると、以下のようになります。
表記 | 意味 | 値 |
---|---|---|
$fruit[0] |
$fruit の0番目の値 |
リンゴ |
$fruit[1] |
$fruit の1番目の値 |
ミカン |
$fruit[2] |
$fruit の2番目の値 |
ブドウ |
また、以下のように番号を指定して値を代入する事もできます。
<?php
$fruit[0] = "リンゴ";
$fruit[2] = "ミカン";
$fruit[1] = "ブドウ";
echo $fruit[0];
echo $fruit[1];
echo $fruit[2];
?>
これを実行すると、ブラウザに リンゴブドウミカン
と表示されます。番号を指定したことにより、表示の順番が変わっています。
array
関数を使用すれば、配列に一度に複数の内容をセットする事ができます。
<?php
$fruit = array("リンゴ", "ミカン", "ブドウ");
echo $fruit[0];
echo $fruit[1];
echo $fruit[2];
?>
array
関数を使用した場合も、配列の番号は 0
から順に設定されます。これを実行すると、ブラウザに リンゴミカンブドウ
と表示されます。
なお、array
で代入するときは $fruit
に []
は不要なので注意してください。(個々の値を参照する場合のみ必要です。)
count
関数を使用すれば、配列の要素数を調べる事ができます。以下のようにすると、$count
に配列の要素数が代入されます。
$count = count(配列名)
これを利用して、配列内の要素をすべて表示する事ができます。
<?php
$fruit = array("リンゴ", "ミカン", "ブドウ", "メロン", "グレープ");
$count = count($fruit);
for ($i = 0; $i < $count; $i++) {
echo "$fruit[$i]<br />\n";
}
?>
$count
には $fruit
の要素数が入るため、この場合は 5
が代入されます。これにより for
は $i
が 0
~ 4
の間に実行されます。つまり echo
によって $fruit[0]
、$fruit[1]
、$fruit[2]
…と順に表示されるため、結果として $fruit
の内容が改行区切りですべて表示されます。
配列の内容をすべて表示する場合、foreach
制御文を使って書くこともできます。
<?php
$fruit = array("リンゴ", "ミカン", "ブドウ", "メロン", "グレープ");
foreach ($fruit as $name) {
echo "$name<br />\n";
}
?>
このように書くと、配列 $fruit
の内容が先頭から順に $name
という変数に代入され、繰り返し処理されていきます。つまり、$fruit
の内容が改行区切りですべて表示されます。
条件分岐の際、endif を使用するとコードを読みやすく書き換えることができましたが、foreach
にも同様の書き方が用意されています。具体的には
<?php
$fruit = array("リンゴ", "ミカン", "ブドウ", "メロン", "グレープ");
foreach ($fruit as $name) :
echo "$name<br />\n";
endforeach;
?>
このように書くことができます。