0

array2 に array1 からの (ランダムに生成された) 値があるかどうかを確認する必要がある状況になりました。これまでのところ私は

redo : $id=mt_rand(0,count(array1));
foreach($array2 as $arr)
{
    if($arr[0]==$id) goto redo;
}
//Some actions if randomly generated value from array1 wasn't found in array2

しかし、私は goto を使用したくないのです。gotoなしでこれを行う簡単な解決策があると確信していますが、それを考えることができませんD:

4

2 に答える 2

1

数値パラメータを使用できますcontinue: http://www.php.net/manual/en/control-structures.continue.php

while(true){
  $id = mt_rand(0,count(array1);

  foreach( $array2 as $arr )
    // restart the outer while loop if $id found
    if( $arr[0] == $id ) continue 2;

  // $id not found in array, leave the while loop ...
  break;
};

// ... and do the action
于 2012-08-12T10:05:53.513 に答える
1

これを試して

$flag=true;
 do{
      $id=mt_rand(0,count(array1);

      foreach( $array2 as $arr )
        if( $arr[0] == $id ) break;

      // do it and set flag to false when you need to exit;

    } while($flag);
于 2012-08-12T10:07:03.613 に答える