ループ(繰り返し)の制御構造(制御構文)において、複数の階層のループ(繰り返し)処理をスキップさせたいときは、continueの引数に、スキップさせたい階層数を指定する。
continue文は、 for、 foreach、 while、 do-while などのループ(繰り返し)の制御構造(制御構文)で使用する。
サンプル
for
詳細については、多階層for文の複数の階層のループ処理をcontinueでスキップさせるのページへ。
<?php
for ( $varA = 1; $varA <= 3; $varA++ ) {
for ( $varB = 1; $varB <= 3; $varB++ ) {
echo '<p>';
for ( $varC = 1; $varC <= 3; $varC++ ) {
echo $varA . '-';
echo $varB . '-';
echo $varC . ', ';
if ( $varC >= 2 ) {
continue 2;
}
}
echo '</p>';
}
}
?>
for ( $varA = 1; $varA <= 3; $varA++ ) {
for ( $varB = 1; $varB <= 3; $varB++ ) {
echo '<p>';
for ( $varC = 1; $varC <= 3; $varC++ ) {
echo $varA . '-';
echo $varB . '-';
echo $varC . ', ';
if ( $varC >= 2 ) {
continue 2;
}
}
echo '</p>';
}
}
?>
↓↓↓出力結果↓↓↓
1-1-1, 1-1-2,
1-2-1, 1-2-2,
1-3-1, 1-3-2,
2-1-1, 2-1-2,
2-2-1, 2-2-2,
2-3-1, 2-3-2,
3-1-1, 3-1-2,
3-2-1, 3-2-2,
3-3-1, 3-3-2,
1-2-1, 1-2-2,
1-3-1, 1-3-2,
2-1-1, 2-1-2,
2-2-1, 2-2-2,
2-3-1, 2-3-2,
3-1-1, 3-1-2,
3-2-1, 3-2-2,
3-3-1, 3-3-2,
foreach
詳細については、多階層foreach文の複数の階層のループ処理をcontinueでスキップのページへ。
<?php
$varArrayA = array(
array(
"red" => "レッド",
"blue" => "ブルー",
"yellow" => "イエロー"
),
array(
"aka" => "赤色",
"ao" => "青色",
"ki" => "黄色"
)
);
foreach ( $varArrayA as $varValueA ) {
foreach ( $varValueA as $varValueB ) {
echo '<p>' . $varValueB . '</p>';
if ( $varValueB == 'ブルー' ) {
continue 2;
}
}
}
?>
$varArrayA = array(
array(
"red" => "レッド",
"blue" => "ブルー",
"yellow" => "イエロー"
),
array(
"aka" => "赤色",
"ao" => "青色",
"ki" => "黄色"
)
);
foreach ( $varArrayA as $varValueA ) {
foreach ( $varValueA as $varValueB ) {
echo '<p>' . $varValueB . '</p>';
if ( $varValueB == 'ブルー' ) {
continue 2;
}
}
}
?>
↓↓↓出力結果↓↓↓
レッド
ブルー
赤色
青色
黄色
ブルー
赤色
青色
黄色
while
詳細については、多階層while文の複数の階層のループ処理をcontinueでスキップさせるのページへ。
<?php
$varA = 1;
while ( $varA <= 3 ) {
echo '<p>$varA: ';
echo $varA++;
echo '</p>';
$varB = 1;
while ( $varB < $varA ) {
echo '<p> $varB: ';
echo $varB++;
echo '</p>';
echo '<p> $varC: ';
$varC = 1;
while ( $varC < $varB ) {
echo $varC++ . ',';
if ( $varC > 2 ) {
echo '</p>';
continue 2;
}
}
echo '</p>';
}
}
?>
$varA = 1;
while ( $varA <= 3 ) {
echo '<p>$varA: ';
echo $varA++;
echo '</p>';
$varB = 1;
while ( $varB < $varA ) {
echo '<p> $varB: ';
echo $varB++;
echo '</p>';
echo '<p> $varC: ';
$varC = 1;
while ( $varC < $varB ) {
echo $varC++ . ',';
if ( $varC > 2 ) {
echo '</p>';
continue 2;
}
}
echo '</p>';
}
}
?>
↓↓↓出力結果↓↓↓
$varA: 1
$varB: 1
$varC: 1,
$varA: 2
$varB: 1
$varC: 1,
$varB: 2
$varC: 1,2,
$varA: 3
$varB: 1
$varC: 1,
$varB: 2
$varC: 1,2,
$varB: 3
$varC: 1,2,
$varB: 1
$varC: 1,
$varA: 2
$varB: 1
$varC: 1,
$varB: 2
$varC: 1,2,
$varA: 3
$varB: 1
$varC: 1,
$varB: 2
$varC: 1,2,
$varB: 3
$varC: 1,2,
do-while
詳細については、多階層do-while文の複数の階層のループ処理をcontinueでスキップのページへ。
<?php
$varA = 1;
do {
echo '<p>$varA: ';
echo $varA++;
echo '</p>';
$varB = 1;
do {
echo '<p> $varB: ';
echo $varB++;
echo '</p>';
echo '<p> $varC: ';
$varC = 1;
do {
echo $varC++ . ',';
if ( $varC > 2 ) {
echo '</p>';
continue 2;
}
} while ( $varC < $varB );
echo '</p>';
} while ( $varB < $varA );
} while ( $varA <= 3 );
?>
$varA = 1;
do {
echo '<p>$varA: ';
echo $varA++;
echo '</p>';
$varB = 1;
do {
echo '<p> $varB: ';
echo $varB++;
echo '</p>';
echo '<p> $varC: ';
$varC = 1;
do {
echo $varC++ . ',';
if ( $varC > 2 ) {
echo '</p>';
continue 2;
}
} while ( $varC < $varB );
echo '</p>';
} while ( $varB < $varA );
} while ( $varA <= 3 );
?>
↓↓↓出力結果↓↓↓
$varA: 1
$varB: 1
$varC: 1,
$varA: 2
$varB: 1
$varC: 1,
$varB: 2
$varC: 1,2,
$varA: 3
$varB: 1
$varC: 1,
$varB: 2
$varC: 1,2,
$varB: 3
$varC: 1,2,
$varB: 1
$varC: 1,
$varA: 2
$varB: 1
$varC: 1,
$varB: 2
$varC: 1,2,
$varA: 3
$varB: 1
$varC: 1,
$varB: 2
$varC: 1,2,
$varB: 3
$varC: 1,2,