今回は前回のPHPのループ処理(for&while)の続きです。配列内のデータに対して処理を加えたい場合にforeach文を利用して処理をさせることができます。

PHPのループ処理(foreach文)

3年以上前に更新されました。情報が古い可能性があります。
更新日 : 2018年06月05日

今回は前回のPHPのループ処理(for&while)の続きです。配列内のデータに対して処理を加えたい場合にforeach文を利用して処理をさせることができます。

PHPのループ処理その2

前回はfor文とwhile文、do-while文までを行いました。
今回は配列を利用して、配列内のデータの個数分だけループ処理を実行させる目的で利用するforeach文について説明していきます。

foreach文

まずは書式から見てみましょう。2種類あります。

// 基本形
foreach (配列 as 配列内のデータが入る変数名) {
	ループ内処理
}

// 拡張形
foreach(配列 as 配列内のキーが入る変数名 => 配列内のデータが入る変数名) {
	ループ処理
}

このような書式になります。ループ処理させたい配列を指定して、asの後ろに、配列内のデータを格納する変数を宣言します。宣言するだけで、ループ内処理でそのデータを利用できます。

具体的なコードを見てみましょう。

<?php
$data = array("ももたろう", "猿", "犬", "雉");

foreach ($data as $value) {
	echo $value . "<br>";
}

echo "<br>";

foreach ($data as $key => $value) {
	echo $key . ":" . $value . "<br>";
}
?>

まずは$dataという変数に今回のテストデータとなる配列を宣言、代入しました。

基本形の処理

foreach ($data as $value) この部分で配列($data)と配列内のデータが入る変数名($value)を記述します。これで$valueは中括弧{}のループ内処理で利用することができます。

1周目、$valueには"ももたろう"というデータが格納された状態でループ内処理に入ります。そのままループ内処理が終了後
2周目、$valueには"猿"と格納されます。

このように、$dataの配列内のデータの個数分だけ自動的にループ内処理が実行されます。ループ内処理では$valueを利用して配列内のデータを参照することができます。

拡張形の処理

次に拡張形の処理を見ていきましょう。基本形と異なる点は、キーを利用することができるという点です。

foreach ($data as $key => $value) まずこの部分でキーの変数名、値の変数名を記述します。もちろん配列に合った値で設定したほうが可読性が増すので、配列内のデータに合わせた変数名を設定しましょう。

後はキーの変数名をループ内処理で利用できるというだけなので、基本形と大差ありません。

最後に先程のコード例の実行結果を画像で見てみます。

PHPのforeach文実行結果
PHPのforeach文実行結果

連想配列の場合

どちらのforeachでも連想配列を指定することができます。

基本形の場合はキーの値は取得できないため、連想配列のキー名も利用したい場合は拡張形で利用します。

連想配列を利用したコード例は今回は使用しません。連想配列、foreach文について理解出来ていれば難しくないのでぜひ書いてみてください!サボってるわけではありません。(笑)

まとめ

2記事続けてPHPのループ処理について書いていきました。

特にforeachは配列内のデータの個数分だけ自動でループしてくれるので、何回ループさせなきゃいけないということを気にする必要なく使用することができます。