Случайное число по возрастанию PHP

$newfilename = $_POST["form_name"].'-'.rand(100,1000).'.'.$imgext;

Оператор rand выбирает случайное число из заданного диапазона, а как сделать, чтоб он выбирал случайное число, но по возрастанию?


Ответы (2 шт):

Автор решения: Fr3z0n

Ну думаю надо сделать что-то типа того, чтобы запоминалось прошлое число.

$rand = rand(100,1000)
$x = 0;
for($i=0;$i<10;$i++)
{
   if($rand !== 1000)
   {
      if($x =< $rand){
         $newfilename = $_POST["form_name"].'-'$rand.'.'.$imgext;
         $x = $rand;
      }
   }
}
→ Ссылка
Автор решения: Эдуард

Сохраняйте последний результат в БД, текст.файл, или в сессионный массив, и проверяйте в условии границы диапазонов - если диапазон превышен, сбрасываете значение в хранилище до исходного состояния. Привожу пример с массивом сессий:

session_start();

$min = 100;
$max = 1000;

$rand = &$_SESSION['min'] ?? 0;
$rand = mt_rand( ++$rand, ($rand + 10) );

if ($rand < $min || $rand > $max) {
    $rand = $min;
}

echo $rand;
→ Ссылка