page_adsence

2011年2月2日水曜日

多重ループから抜ける方法

通常、ループ処理を行っている途中で、そのループから抜ける場合はbreakと記述する。


foreach( $array as $key => $value ){
    if ( $key == 1 ) break;
}

多重ループの場合は一度breakと記述するだけでは、現在プール処理している部分から抜けるだけで、
その外側のループはそのまま処理されてしまう。
こういった場合には以下のように記述する


以下の場合は$array1のループ処理は通常通り処理されてしまう。
foreach( $array1 as $key1 => $value1 ){
    foreach( $array2 as $key2 => $value2 ){
        if ( $key2 == 1 ) break;
    }
}

以下の場合は2重ループの外側までbreakされる。
foreach( $array1 as $key1 => $value1 ){
    foreach( $array2 as $key2 => $value2 ){
        if ( $key2 == 1 ) break 2;
    }
}

こういった形で、breakの後に数字を記述することで、その数のループ処理から抜けることができる。
break以外にcontinueでも同様のことができる。