PHPのループ処理(foreach文)
更新日 : 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)
まずこの部分でキーの変数名、値の変数名を記述します。もちろん配列に合った値で設定したほうが可読性が増すので、配列内のデータに合わせた変数名を設定しましょう。
後はキーの変数名をループ内処理で利用できるというだけなので、基本形と大差ありません。
最後に先程のコード例の実行結果を画像で見てみます。

連想配列の場合
どちらのforeachでも連想配列を指定することができます。
基本形の場合はキーの値は取得できないため、連想配列のキー名も利用したい場合は拡張形で利用します。
連想配列を利用したコード例は今回は使用しません。連想配列、foreach文について理解出来ていれば難しくないのでぜひ書いてみてください!サボってるわけではありません。(笑)
まとめ
2記事続けてPHPのループ処理について書いていきました。
特にforeachは配列内のデータの個数分だけ自動でループしてくれるので、何回ループさせなきゃいけないということを気にする必要なく使用することができます。
タグ
-
前の記事
PHPのループ処理(for&while)
-
次の記事
PHPの型(スカラー型)