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

您可以使用数字参数continuehttp ://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 回答