php随机数与数字(1-9)只有6长度

时间:2014-12-12 04:02:52

标签: php

我只想在[length = 6]函数中0,1,2,3,4,5,6,7,8,9只有6个随机数php而没有重复。

这是我的代码

$a = mt_rand(1,9999999999); //because I need from 1 to 9999999999 of(0,1,2,3,4,5,6,7,8,9)
for ($i = 0; $i<6; $i++) 
{
   $a .= mt_rand(0,9);
}

我不确定我的代码是不是很好的解决方案

我怎么做?

2 个答案:

答案 0 :(得分:1)

试试这段代码。

function GenerateRandom($min, $max, $range) {
    $numbers = range($min, $max);
    shuffle($numbers);
    return array_slice($numbers, 0, $range);
}

print_r( GenerateRandom(0,25,6) );

希望这有帮助。

答案 1 :(得分:1)

如果您的源数组相当大,您可以通过仅获取所需内容来节省一些内存:

$a = range(0, 9);

for ($i = 0, $n = count($a); $i < 6 && --$n; ++$i) {
    $r = mt_rand(0, $n);
    if ($r != $n) {
        $tmp = $a[$n];
        $a[$n] = $a[$r];
        $a[$r] = $tmp;
    }
}

echo join(',', array_slice($a, -6));

我正在创造一个术语&#34; Partial Knuth Shuffle&#34;对此。