web-dev-qa-db-ja.com

PHPで外部ループを解除するにはどうすればよいですか?

PHPの外側のfor/foreachループを解除したいと考えています。

これは、次のようにActionScriptで実行できます。

top : for each(var i:MovieClip in movieClipArray)
{
    for each(var j:String in nameArray)
    {
        if(i.name == j) break top;
    }
}

PHP同等のものは何ですか?

117
Marty

2つのネストされたループの場合:

break 2;

http://php.net/manual/en/control-structures.break.php

258
lucian303

PHPマニュアル

breakはオプションの数値引数を受け入れ、ネストされた囲み構造をいくつ分割するかを指定します。

break 2;
33
Shakti Singh

Break-nステートメントのみを使用できます。

foreach(...)
{
    foreach(...)
    {
        if(i.name == j) break 2; //Breaks 2 levels, so breaks outermost foreach
    }
}

PHP> = 5.3を使用している場合は、アクションスクリプトの場合と同様に、ラベルとgotosを使用できます。

 foreach(...)
{        
    foreach(...)
    {
        if(i.name == j) goto top;
    }
}
top :

ただし、gotoは慎重に使用する必要があります。後藤は(悪い習慣と見なされます)

break 2;を使用して、同時に2つのループから抜けることができます。 「名前付き」ループを使用した例とはまったく異なりますが、うまくいきます。

12
Jon
    $i = new MovieClip();
    foreach($movieClipArray as $i)
    {
          $nameArray = array();
          foreach($nameArray as $n) if($i->name==$n) break 2;
    }
6
Jordan Arseno

Gotoを使う?

for($i=0,$j=50; $i<100; $i++) 
{
  while($j--) 
  {
    if($j==17) 
      goto end; 
  }  
}
echo "i = $i";
end:
echo 'j hit 17';
4
Petr Abdulin