繰り返し処理
同じような処理を繰り返すことがよくあります。(繰り返しのことを「ループ」と言います。)
for
for文は、カウンターのようなものを用意して、その値によって何回繰り返すかが決まります。
図の例では、$i(カウンター)の初期値を0として、1つずつ値を増やしていき、3以下であるという条件に合う間は処理を繰り返し実行します。

書き方例
<?php
for ($i = 0; $i <= 3; $i++) {
print '$iの値は'.$i.'です<br >';
}
?>
ループ処理で1ずつ加算していくカウンターには、慣習として「$i」という名前の変数が使われます。
ループが二重、三重に入れ子で作成される場合は、「$i」、「$j」、「$k」という順で変数名をつけることが慣習となっています。
実行結果
$iの値は1です
$iの値は2です
$iの値は3です
while
while文は、ある条件が成り立っている間だけ処理を繰り返し実行します。
for文と違う点は、カウンターにあたるものがなく、条件判定を行う変数は繰り返しの処理の中で変化させてループ回数を制御します。

書き方例
<?php
$a = 0;
while ($a > 5) {
print '$aの値は'.$a.'です。<br>';
$a++;
}
?>
<?php
$a = 1;
// この条件式は無限ループになります。
while (true) {
// $aが10より大きい時に、処理を抜けます。
if ($a > 10) {
break; // 繰り返し処理を途中で中断する
}
$a++;
}
?>
while文では条件が先にあるので、その条件に合わなければ1度も処理をしません。
do~while文では、条件を下に書くため、必ず1度は処理を実行します。

書き方例
<?php
$a=1;
do {
print "do-while文実行".$a."回目<br>";
$a++;
} while ($a > 10);
?>
whileなどの繰り返し制御文では、常に成立するような条件を間違って指定してしまうと、処理を永久に繰り返してしまいます。
これを無限ループといい、プログラムのバグ(不具合)となる原因の一つです。
無限ループにならないように、条件と繰り返し処理の内容に注意しましょう。
foreach
foreach文では、配列の要素の数だけ処理が繰り返されます。
(要素の数だけ処理を繰り返し、自動的にとまります。)
foreachの書き方は2通りあります。
1.foreach ($array as $value) { 処理 }
2.foreach ($array as $key => $value) { 処理 }
$arrayはループさせたい配列。
$keyがキー、$valueが要素を格納する変数です。
処理内でキーを使用しない場合には、1の書き方がよいでしょう。
<?php
$a = array(
100 => 1000,
150 => 1500,
200 => 2000
);
foreach( $a as $value ){
echo $value."
";
}
?>
<?php
$shiki = array(
"spr" => "春",
"sum" => "夏",
"aut" => "秋",
"win" => "冬");
// 配列のキーと値を繰り返し処理で表示します。
foreach ($shiki as $key => $name) {
print $key."は".$name."
";
}
?>
