2013-09-16 9 views
6

これは簡単な質問であるはずですが、良い答えが見つからないようです。 foreachループに条件を設定する方法はありますか?唯一のことは、私は停止したいということですPHPでforeachとwhileを組み合わせる

foreach ($array as $value) 
{ 
    if($condition == true) 
    {//do some code} 
} 

:もちろん

foreach ($array as $value WHILE $condition == true) 
{ //do some code } 

次のように私は、foreachループの内側であれば条件を置くことができる:私はこのような何かが欲しいです一度if条件がfalseになると、配列を繰り返し処理して、パフォーマンスを向上させます。 foreachループの残りの部分を実行して、$ conditionがFalseになったことを判断する必要はありません。

提案がありますか?私は何かをmisisng明らかですか?

+3

break文。 –

+0

実際には本当にPHPがこのforeachを持つことができますし、機能は非常に清潔できれいです – zhihong

答えて

17

ありませんが、あなたの条件が満たされたときにループをbreakことができます。

foreach ($array as $value){ 
    if($condition != true) 
    break; 
} 
2

あなたは簡単にあなたが望む正確な瞬間に、foreachループを終了するには、ブレークキーワードを使用することができます。これは私が現時点で考えることができるこれを行うための最も簡単な方法です。

foreach ($array as $value) 
{ 
    if($condition == true) 
    { 
     //do some code 
     break; 
    } 
} 
1

多分あなたは休憩を使うことができます。文

foreachの($値として$配列){ 場合($条件==真) {//}いくつかのコードを実行する他の {破ります。 }}

2

通常のforループを試すこともできますが、これには条件が組み込まれています。唯一のことは、インデックスを使用して配列の要素にアクセスする必要があることです。

<?php 
//Basic example of for loop 
$fruits = array('apples', 'figs', 'bananas'); 
for($i = 0; $i < count($fruits); $i++){ 
    $fruit = $fruits[$i]; 
    echo $fruit . "\n"; 
} 

これはやや複雑な例で、図が見つかるとすぐに実行を停止します。

<?php 
//Added condition to for loop 
$fruits = array('apple', 'fig', 'banana'); 
$continue = true; 
for($i = 0; $i < count($fruits) && $continue == true; $i++){ 
    $fruit = $fruits[$i]; 

    if($fruit == 'fig'){ 
     $continue = false; 
    } 

    echo $fruit . "\n"; 
} 

私は役立つことを望みます。

2
foreach ($array as $value) { 
    if($condition) { 
    //do some code 
    } 
    else { 
    break; 
    } 
}