forだけに限らず、foreach,whileなどでループ処理を行うときは、
原則全ての要素に対し処理を行う事になるが、
一部ループ処理を適用させたくないときは…どうしたらいいのか。。。
サンプル
$array = array();
for($i = 0; $i < 20; $i++) {
if*1 {
$array[$i] = 'hoge';
} else {
$array[$i] = 'homu';
}
}
print_r($array);
結果
Array
(
[0] => homu
[1] => homu
[2] => homu
[3] => homu
[4] => homu
[5] => hoge
[6] => hoge
[7] => hoge
[8] => hoge
[9] => hoge
[10] => homu
[11] => homu
[12] => homu
[13] => homu
[14] => hoge
[15] => hoge
[16] => hoge
[17] => hoge
[18] => homu
[19] => homu
)
5から9、14から17はhomuではなくhogeになってます。
caseを使ってもいいけど、この場合はifのほうが良い気がした。
*1:$i >= 5 && $i <= 9) || ($i >= 14 && $i <= 17