生成随机值数组时遇到麻烦

时间:2010-12-06 02:53:31

标签: php arrays random

我正在使用以下代码生成一个0到2之间的随机数组:

    for ($j = 0; $j < 60; $j++) {
       for ($i = 0; $i < 100; $i++) {
                $value = rand(0,2);
                $DBH->query("INSERT INTO map (x, y, value) VALUES($i, $j, $value);");
    }

我发现并且奇怪,正如你在这里看到的那样,行是随机的,但它们重复:

22121000210211220022122200120200122000122121
22121000210211220022122200120200122000122121
22121000210211220022122200120200122000122121
22121000210211220022122200120200122000122121
22121000210211220022122200120200122000122121

如何避免这种情况?

1 个答案:

答案 0 :(得分:3)

您可能希望使用srand为您的生成器显式播种,例如srand(time())(请注意,srand链接有一个更好的播种示例,而不仅仅是使用时间,取决于你需要的随机性,我想)。

失败

  • 您可以尝试将mt_randmt_srand
  • 一起使用
  • 您可以随时使用MySQL的rand函数生成数字作为解决方法。