我只想在函数中从0,1,2,3,4,5,6,7,8,9
中[length = 6]
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);
}
我不确定我的代码是否是好的解决方案
我该怎么做?
试试这段代码。
function GenerateRandom($min, $max, $range) {
$numbers = range($min, $max);
shuffle($numbers);
return array_slice($numbers, 0, $range);
}
print_r( GenerateRandom(0,25,6) );
希望这有帮助。
如果你的源数组相当大,你可以通过只获取你需要的东西来节省一些内存:
$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));
我为此创造了"部分高德纳洗牌"一词。