作成日:2017-12-04, 更新日:2017-12-04
基本
おおざっぱに言うと、下記の2タイプある。
・条件を満たす間、繰り返す。
・配列(オブジェクト)がある限り、繰り返す。
条件を満たす間、繰り返す
for()
for ($i=0; $i<10; $i++) {
~処理~
}
上記は
・「$i」の初期値は「0」
・「$iが10未満」のとき、処理実行
・処理後、「$i」を「+1」
のような処理。
while()
「while (条件){}」で「条件が真なら実行」となる。
そのため、「条件が偽」のときはループ処理が走らないコトもある。
$flag = true;
while ($flag) {
~処理~
if (条件) {
$flag = false;
}
}
上記は
・「$flag」が「true」の間、処理実行。
※無限ループに陥りやすいので回数指定したほうがいいかも。
▼無限ループ対策に回数指定を追加
$i = 0;
$flag = true;
while ($flag) {
~処理~
if (条件 || 10<$i) {
$flag = false;
}
$i++;
}
do-while()
「while()」は「条件が真なら実行」となるが、「do-while()」はひとまずループ処理実行って形になる。
※「while()」同様、無限ループに陥りやすいので回数指定したほうがいいかも。
$i = 0;
$flag = true;
do {
~処理~
if (条件 || 10<$i) {
$flag = false;
}
$i++;
}
while ($flag);
違い:while()とdo-while()
似たようなループ処理。
・「while()」は、条件チェックをしてから、ループ処理。
・「do-while()」は、ループ処理をしてから、条件チェック。
▼while():条件チェック(while ($flag))→「$i++」が走らない→「$i」は「0」
$i = 0;
$flag = false;
while ($flag) {
$i++;
$flag = false;
}
echo $i;
▼do-while():「$i++」が実行→条件チェック(while ($flag))→「$i」は「1」
$i = 0;
$flag = false;
do {
$i++;
$flag = false;
}
while ($flag);
echo $i;
配列(オブジェクト)がある限り、繰り返す
foreach()
ループ内でキー(添え字)不要、値のみ使う
$ary = array(〇〇〇, 〇〇〇, 〇〇〇, 〇〇〇, 〇〇〇);
foreach ($ary as $val) {
echo '値:' . $val . "\n";
}
ループ内でキー(添え字)必要、値も使う
$ary = array(
□□□ => 〇〇〇,
□□□ => 〇〇〇,
□□□ => 〇〇〇,
);
foreach ($ary as $key=>$val) {
echo 'キー(添え字):' . $key . "\n";
echo '値:' . $val . "\n";
}