0
Приведенный ниже код не производит 3 случайных не повторяющихся чисел из 15.PHP: Случайные числа, не дублировать, не предыдущий и следующий номер
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.
Alright это потрясающе! И это работает из коробки. Большое спасибо! –
Как правило, для обеспечения его работы вы должны иметь свои аргументы, такие как '$ max- $ min> ($ margin * 2 + 1) * $ count'. Это гарантирует, что, независимо от результата, он сможет дать вам результат каждый раз. В этом конкретном случае '14> 9', так что все в порядке. –