PHPのfor文のサンプルです。処理を繰り返す時に使用します。
目次
for文 | for文 |
for文で配列の値を取得する | |
break | ループ処理を途中で終了する(break) |
2重ループ(入れ子)のときにbreakを使用する | |
continue | ループ処理で処理をスキップする(continue) |
2重ループ(入れ子)のときにcontinueを使用する | |
foreach文 | foreach文で配列の値を取得する |
for文
for(1.値を初期化 ; 2.条件 ; 3.値を更新){ 実行される処理 } |
- 処理を繰り返す時に使用します。最初にforを書くのでfor文と呼ばれます。
- 初期化は、最初に1回だけ実行されます。
- 使用する変数をカウンター変数またはループ変数といいます。
→変数名はiやjがよく使用されます。 - 条件がtrueの間、処理を繰り返します。
- 条件がfalseの場合、ループ処理を終了します。
- 「3.値を更新」でカウンター変数/ループ変数の値が変わります。
for文のサンプル
<?php
for ($i = 0; $i < 3; $i++) {
echo $i; //0 1 2が出力される
}
2行目は、初期化式($i = 0)によりi は0から始まります。iはカウンター変数と呼ばれます。
増減式($i++)によりiの値は、1ずつ増えていきます。
条件式($i < 3)がtrueの間は処理を繰り返し、iが3になるとfalseになるので終了します。
for文で配列の値を取得する
<?php
$color = ["赤", "黄", "青"]; // 配列
for ($i = 0, $size = count($color); $i < $size; ++$i) {
echo $color[$i]; // 赤 黄 青が出力される
}
2行目は、配列です。
4行目の$size = count($color)は、配列のサイズを取得しています。
条件式($i < $size)でcountを使用すると都度countを実行してしまい遅くなるためです。
5行目は、変数と添字で配列の値を表示しています。配列の添字は0から始まります。
ループ処理を途中で終了する(break)
- for文でbreakを使用するとループ処理から抜けます。(そのブロックから抜けます)
- 「{」(波括弧) から「}」までをブロックといいます。
<?php
for ($i = 0; $i < 3; $i++) {
if ($i === 1) {
break;
}
echo $i; // 0が出力される
}
4行目のbreakでfor文を抜けます。0のみ出力されます。
2重ループ(入れ子)のときにbreakを使用する
<?php
for ($i = 0; $i < 2; $i++) {
for ($j = 0; $j < 2; $j++) {
if ($j === 0) {
break;
}
echo "j=" . $j; //出力なし
}
echo "i=" . $i; // i=0 i=1が出力される
}
2,3行目にfor文があり2重ループ(入れ子)になっています。
5行目のbreakは、内側のfor文のみ抜けます。
ループ処理で処理をスキップする(continue)
- for文でcontinueを使用すると、ループ処理の先頭に戻ります。(ブロックの先頭位置に戻ります)
- 「{」(波括弧) から「}」までをブロックといいます。
<?php
for ($i = 0; $i < 3; $i++) {
if ($i === 1) {
continue;
}
echo $i; // 0 2が出力される
}
4行目のcontinueでループ処理の先頭の3行目に戻ります。0と2が出力されます。
2重ループ(入れ子)のときにcontinueを使用する
<?php
for ($i = 0; $i < 2; $i++) {
for ($j = 0; $j < 2; $j++) {
if ($j === 0) {
continue;
}
echo "j=" . $j; //j=1 j=1が出力される
}
echo "i=" . $i; // i=0 i=1が出力される
}
2,3行目にfor文があり2重ループ(入れ子)になっています。
5行目のcontinueは、内側のfor文の先頭に戻ります。
foreach文で配列の値を取得する
foreach(変数1 as 変数2){ 繰り返される箇所(変数2を使用) } |
- 上記for文との違いは、変数の値を加算する処理がありません。
- 配列の要素を順番にアクセスします。
foreach文で配列の値を取得するサンプルです。
<?php
$color = ['赤', '黄', '青'];
foreach ($color as $a) {
echo $a; //赤 黄 青が出力される
}
2行目は、配列です。
4行目は、foreach文で配列の全ての要素にアクセスします。カウンター変数を使用していません。
関連の記事