入れ子(ネスト)で多階層にした制御構造(制御構文)の、複数の階層のループ(繰り返し)処理を終了させたいときは、breakの引数に、終了させたい階層数を指定する。
for、 foreach、 while、 do-while、 switch などの制御構造(制御構文)で使用する。
サンプル
for
詳細については、多階層for文の複数の階層のループ処理をbreakで終了させるのページへ。
<?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 ) {
break 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 ) {
break 2;
}
}
echo '</p>';
}
}
?>
↓↓↓出力結果↓↓↓
1-1-1, 1-1-2,
2-1-1, 2-1-2,
3-1-1, 3-1-2,
2-1-1, 2-1-2,
3-1-1, 3-1-2,
foreach
詳細については、多階層foreach文の複数の階層のループ処理をbreakで終了させるのページへ。
<?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 == 'ブルー' ) {
break 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 == 'ブルー' ) {
break 2;
}
}
}
?>
↓↓↓出力結果↓↓↓
レッド
ブルー
ブルー
while
詳細については、多階層while文の複数の階層のループ処理をbreakで終了させるのページへ。
<?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>';
break 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>';
break 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: 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,
do-while
詳細については、多階層do-while文の複数の階層のループ処理をbreakで終了させるのページへ。
<?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>';
break 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>';
break 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: 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,
switch
<?php
$varA = 'サッカー';
$varB = '大好き';
switch ( $varA ) {
case 'サッカー':
case '野球':
case 'テニス':
echo '<p>スポーツは楽しいよね。</p>';
switch ( $varB ) {
case '大好き':
echo '<p>私も大好きです。</p>';
break 2;
case '好き':
echo '<p>私は大好きです。</p>';
break 2;
}
break;
case 'ピアノ':
case 'ギター':
case 'バイオリン':
echo '<p>音楽は楽しいよね。</p>';
break;
}
?>
$varA = 'サッカー';
$varB = '大好き';
switch ( $varA ) {
case 'サッカー':
case '野球':
case 'テニス':
echo '<p>スポーツは楽しいよね。</p>';
switch ( $varB ) {
case '大好き':
echo '<p>私も大好きです。</p>';
break 2;
case '好き':
echo '<p>私は大好きです。</p>';
break 2;
}
break;
case 'ピアノ':
case 'ギター':
case 'バイオリン':
echo '<p>音楽は楽しいよね。</p>';
break;
}
?>
↓↓↓出力結果↓↓↓
スポーツは楽しいよね。
私も大好きです。
私も大好きです。