Php Random重复类似的字符串,即使在更改种子后也是如此

Php Random重复类似的字符串,即使在更改种子后也是如此,php,random,Php,Random,如何让这个随机字符串生成器创建随机字符串。我不断重复。阵列通常由0-10个东西组成,但它仍然在重复中获得相同数量的床和浴室,我知道统计上它是混乱的 我怎样才能避免重复 for ($i = 0; $i <= 1000000; $i++) { srand($i); $price = rand(20000, 1000000); $bed = rand(0, 20); $bath = rand(0, 7); $addressnu

如何让这个随机字符串生成器创建随机字符串。我不断重复。阵列通常由0-10个东西组成,但它仍然在重复中获得相同数量的床和浴室,我知道统计上它是混乱的

我怎样才能避免重复

    for ($i = 0; $i <= 1000000; $i++) {

      srand($i);
      $price = rand(20000, 1000000);
      $bed = rand(0, 20);
      $bath = rand(0, 7);
      $addressnum = rand(100, 10000);
      $address = (int) preg_replace('/\D/', '', $addressnum) . " lol st";
      $province = $f_contents[rand(0, count($f_contents) - 1)];
      $postedby = 3;
      $description = $de_contents[rand(0,count($de_contents) - 1)];
      $status = "Unsold";
      $type = $status_a[array_rand($status_a)];
      $category = $category_type[array_rand($category_type)];
      $size = rand(100,100000);
      $builtin = rand(1850, 2013);

      $queryString = "INSERT INTO listings 
      (PRICE, ADDRESS, PROVINCE, DESCRIPTION, STATUS, TYPE, CATEGORY, SIZE, BUILTIN, BED, BATH, POSTED_BY) VALUES 
      ($price, '$address', '$province', '$description', '$status', '$type', '$category', $size, $builtin, $bed, $bath, $postedby)";
      echo $queryString . "<br>"; 
      $query = $db -> query($queryString);
    }
for($i=0;$i查询($queryString);
}
停止使用rand()。改用mt_rand()应该可以解决这个问题

我多次遇到rand()和重复值的问题。我必须承认,在这些情况下,我从来没有真正花时间检查rand()为何看起来如此不稳定。

srand()
置于循环之外。
srand()
应该在程序中调用一次,而且只调用一次。此后,
rand()
将产生随机结果。如果反复调用
srand()
,则根本不会得到随机数,而是得到调用它的种子的哈希值


当然,切换到
mt_rand()
会给您带来更高质量的随机数,但这不是您的代码的问题。

对于
$queryString
,您得到了相同的值?为什么要使用
srand($i)
?您尝试过用
mt_rand()替换
rand()
?我可以用什么替换数组?试着用
$status\u-rand($status\u-a)]替换
$status\u-a[mt\u-rand(count($status\u-a))]
和所有对
rand()
的调用替换
mt\u-rand()