生成不重复的随机数


Generate random number without duplicates

我想生成6位随机数并检查它是否在表中,如果存在,则生成另一个6位随机号并再次检查,以此类推。。编写的代码如下,

$querySel1=mysqli_query($connect, "select dynamic_email_id from logis_contacts");
while($row = mysqli_fetch_row($querySel1)){
  $dynamic_id[] = $row[0];              
}
$number = mt_rand( 100000, 999999);
dynamicEmailId($number, $dynamic_id);

function dynamicEmailId($number, $dynamic_id){
  if( in_array($number, $dynamic_id) ){     
     $new  = mt_rand( 100000, 999999);
     dynamicEmailId($new, $dynamic_id);// here i am confused
   }
  else {
    echo $number;
  }
}

请建议一种更好的方法来实现这个

*没关系,请检查

function generateUniqueId($number,$fetchArray) {
  if (!in_array($number,$fetchArray)) { 
    return $number;
  }
  else {
    $newNumber  = mt_rand( 100000, 999999);
    return generateUniqueId($newNumber, $fetchArray);
  }
 }