配列
目次
- 解説
- 1. 学習の準備
- 2. 配列とは
- 3. 配列の作成と代入
- 4. 配列の要素と添字
解説
1. 学習の準備
下表のとおり学習用のクラスを作成して、その中にmainメソッドを作っておきましょう。
ファイル名 | ArrayAndLoop.php |
クラス名 | ArrayAndLoop |
2. 配列とは
配列とは複数の変数をまとめて扱えるようにする仕組みです。
例えば3つのケーキを売っているお店で、それぞれ1日に売れた数を数えるプログラムを作る場合には、ケーキごとに数を数えるために数値型の変数が3つ必要になります。
$sellCounterStrawberryShortCake = 0;
$sellCounterChocolateCake = 0;
$sellCounterNewYorkCheeseCake = 0;
// 売れたケーキの情報をレジなどから随時受け取る何らかの処理
// $cakeNameがケーキの名前、$sellCountが売れた数とする
// ~~~
// 情報を受け取る度に販売数を加算する処理
switch($cakeName) {
case 'StrawberryShortCake':
$sellCounterStrawberryShortCake += $sellCount;
break;
case 'ChocolateCake':
$sellCounterChocolateCake += $sellCount;
break;
case 'NewYorkCheeseCake':
$sellCounterNewYorkCheeseCake += $sellCount;
break;
}
これではケーキの種類が増える度に、変数とcase文を増やす必要があり、どんどん長く複雑なプログラムになってしまいます。
そこで、配列の登場です。配列はひとつの変数の中をいくつかに区切って、それぞれが変数として機能するようにしたものです。次のサンプルコードのように使うことができます。ブラウザから「http://localhost/php_basic/ArrayAndLoop.php」を確認しましょう。
static function practiceArray() {
$sellCounter = [0, 0, 0]; // 配列型の変数を作成
$sellCounter[0] += 10; // 区切られた0番目に10を加算
$sellCounter[1] += 20; // 区切られた1番目に20を加算
$sellCounter[2] += 30; // 区切られた2番目に30を加算
Logger::echo($sellCounter[0]); // それぞれの「変数」で
Logger::echo($sellCounter[1]); // 加算した値を
Logger::echo($sellCounter[2]); // 保持できている
}
[2020/12/31 12:34:56] 10
[2020/12/31 12:34:56] 20
[2020/12/31 12:34:56] 30
3. 配列の作成と代入
配列の作成は以下のように行います。
$array = [];
作成時に区切られた変数それぞれに値を代入する場合には、以下のようにします。
$array = [10, 20, 30];
4. 配列の要素と添字
区切られた変数ひとつひとつのことを要素(ようそ)と呼び、要素は後から追加・削除することができます。count関数を使用し、引数に配列を指定することで要素数を取得することもできます。
各要素に代入や参照を行う場合には、何番目の要素であるかを示す添字(そえじ)を「[]」内に指定します。なお、この添字は0から始まることに注意しましょう。
添字の指定には変数も使用できます。
ケーキ販売数カウント処理の例は、売れたケーキの名前ではなく番号を受け取る仕組みにすることで、switch文を使わずにたった1行でケーキごとの加算処理が可能となります。
// 配列でカウンターを作成
$sellCounter = [0, 0, 0];
// 売れたケーキの情報をレジなどから随時受け取る何らかの処理
// cakeIndexがケーキの番号(0~2)、sellCountが売れた数とする
~~~
// 情報を受け取る度に販売数を加算する処理
$sellCounter[$cakeIndex] += $sellCount;
問題
確認問題
確認問題
この中で配列の説明として正しくないものはどれか?