配列の使い方
配列は大量のデータを扱うときに使います。
複数のデータを一つの変数に格納することができるため、商品のリストや価格、学校の生徒のテストの点数などを扱うなら、「配列変数」を定義して使えば便利です。
もし、配列を使わないで大量なデータを扱うとき、以下のように変数を定義しなければいけません。
$goods1 = 値;
$goods2 = 値;
$goods3 = 値;
…
しかし、配列を使用すれば1つの配列変数を定義するだで済みます。
$array = [値1,値2,値3 …]
そのため、複数の同じ種類の値を扱いたい場合は配列を使用すると便利です。
配列の書き方
配列の書き方は3つの書き方があります。
例えば以下のような商品リストのデータを扱うことを想定してみましょう。
りんご みかん いちご
配列変数の定義
配列を使うには、まず配列変数を定義する必要があります。
$配列変数名
配列変数は変数のときと同じように$の後ろに任意の名前を書きます。
この場合、「商品リスト」なので「$goods」と配列変数を定義しましょう。
$goods
配列の書き方
簡単な配列の書き方
$goods = ['りんご','みかん','いちご'];
//改行してもOK
$goods = [
'りんご',
'みかん',
'いちご'
];
arrayを使う配列の書き方
$goods = array('りんご','みかん','いちご');
//改行してもOK
$goods = array(
'りんご',
'みかん',
'いちご'
);
配列の要素を出力
配列に格納されている1つのデータのことを要素と呼びます。
1つの要素を取り出すには「キー」を指定します。
$配列変数名[キー];
例えば、「みかん」という商品を出力したい場合は、以下のように記述します。
print $goods[1];
配列のすべての要素を出力
配列に含まれるすべての要素を出力するにはforeach制御文を使います。
foreach( $配列変数名 as $各要素を入れる変数)
$goods = [
'りんご',
'みかん',
'いちご'
];
foreach($goods as $val){
echo $val.'です。';
echo '<br>';
}
print_r関数
配列の1つの要素を出力するときprint関数を使いましたが、配列に入っている中身の情報を出力したい場合はprint_r関数を使うと便利です。
print_r($配列変数名);
$goods = [
'りんご',
'みかん',
'いちご'
];
print_r($goods);
配列の要素の追加
既存の配列に新しい要素を作成して値を格納するには以下のように記述します。
$配列変数名[キー] = 値;
新たに商品を追加するには、以下のように記述します。
//既存の配列
$goods = [
'りんご',
'みかん',
'いちご'
];
//新しい要素をキーを指定して追加
$goods[3] = 'メロン';
//新しい要素をキーを指定しないで追加
$goods[] = 'ぶどう';
連想配列
キーは1、2、3…といった整数を使う以外に、文字列を使うこともできます。
キーが整数である配列を「添字配列(そえじはいれつ)」と言い、キーが文字列である配列を「連想配列(れんそうはいれつ)」と言います。
添字配列 … キーが非負整数である配列
連想配列 … キーが文字列である配列
例えば、次のように整数ではなく文字列をキーとして使うには、要素の前に「=>」で文字列を指定します。
$goods = [
'Apple' => 'りんご',
'MandarinOrange' => 'みかん',
'Strawberry' => 'いちご'
];
print_r($goods);
連想配列の要素の出力
連想配列から1つの要素を出力するには、[]の中に整数ではなく文字列をキーとして入れます。
$配列変数名[キー];
例えば、「りんご」という商品を出力したい場合は、以下のように記述します。
print $goods['Apple'];
連想配列のすべての要素の出力
連想配列のすべての要素を出力するには、先ほど説明したforeach制御文を使いますが、文字列のキーが必要になります。
foreach( $配列変数名 as キー => $各要素を入れる変数)
$goods = [
'Apple' => 'りんご',
'MandarinOrange' => 'みかん',
'Strawberry' => 'いちご'
];
foreach($goods as $key=>$val){
echo $key.'の商品名は'.$val.'です。';
echo '<br>';
}
多次元配列
配列には、数値や文字列だけではなく、配列そのものを入れることができます。
このように、配列の中に配列が入っている配列のことを「多次元配列」と言います。
$配列変数 = [
[値1, 値2, 値3…],
[値1, 値2, 値3…],
[値1, 値2, 値3…],
…
];
例えば、配列に商品名だけでな価格や割引率を入れるならば、次のようになります。
$goods = [
['りんご',540,2割引'],
['みかん',240,'3割引'],
['いちご',480,'1割引']
];
print_r($array);
多次元配列の要素の出力
多次元配列から一つの要素を出力するには、以下のように記述します。
$配列変数名[キー][キー]…;
例えば、「みかん」の価格を出力したい場合には以下のように記述します。
$goods = [
['りんご',540,'2割引'],
['みかん',240,'3割引'],
['いちご',480,'1割引']
];
print $goods[1][2];
多次元配列のすべての要素の出力
多次元配列のすべての要素を出力するには、一次元配列と同じようにforeach制御文を使います。
ただし、各要素の出力にはキーが必要になります。
foreach( $多次元配列変数名 as $各要素を入れる変数){
print $各要素を入れる変数[キー1];
print $各要素を入れる変数[キー2];
print $各要素を入れる変数[キー3];
}
例えば、商品名、価格、割引率をすべて出力するには、以下のように記述します。
$goods = [
['りんご',540,'2割引'],
['みかん',240,'3割引'],
['いちご',480,'1割引']
];
foreach($goods as $vals){
echo $vals[0].'は'.$vals[1].'円で'.$vals[2].'です。';
echo '<br>';
}
コピーできました!