下面的代码在 15 个中产生 3 个随机无重复数字。
function num($min, $max, $count){
$count = abs((int)$count);
if($min > $max){
list($min, $max) = array($max, $min);
}
$u = abs($max - $min);
if($count > $u)$count = $u;
$numresult = range($min, $max);
shuffle($numresult);
return array_slice($numresult, 0, $count);
}
foreach(num(1, 15, 3) as $rnum){
echo $rnum, ' ';
}
当随机选择发生时,有没有办法排除前一个和下一个数字?例如:如果第一个选择的号码是 7,那么接下来的两个选择应该排除 6、7 和 8。目前,仅排除 7 个。