多階層foreach文の複数の階層のループ処理をcontinueでスキップ

入れ子(ネスト)で多階層にした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;
        }
    }
}
?>

↓↓↓出力結果↓↓↓

レッド
ブルー
赤色
青色
黄色

多次元配列の各要素のキーと値を取得

<?php
$varArrayA = array(
    array(
        "red" => "レッド",
        "blue" => "ブルー",
        "yellow" => "イエロー"
    ),
    array(
        "aka" => "赤色",
        "ao" => "青色",
        "ki" => "黄色"
    )
);
foreach ( $varArrayA as $varValueA ) {
    foreach ( $varValueA as $varKeyB => $varValueB ) {
        echo '<p>';
        echo $varKeyB . ': ' . $varValueB;
        echo '</p>';
        if ( $varKeyB == 'blue' ) {
            continue 2;
        }
    }
}
?>

↓↓↓出力結果↓↓↓

red: レッド
blue: ブルー
aka: 赤色
ao: 青色
ki: 黄色

スポンサード リンク

カテゴリー: foreach, PHP, 制御構造 タグ: パーマリンク