почему функция php rand () дает некоторое время пустым?

0

Привет, Когда я пытаюсь использовать функцию rand() чем когда-нибудь пуст, как

// I want random value between 0-5000 , want 500 random value
 for ($i=0; $i < 500; $i++) { 
    $randNo = rand(0, 5000);

    if (in_array($randNo, $randArray)) {
        $randNo = InfiniteLoop($randArray ,$length_sec);
    }
    array_push($randArray,$randNo);
}
sort($randArray);

После этого я напечатаю этот массив, давая некоторое пустое значение.

//output
Array ( [0] =>  [1] => 523 [2] => 824 [3] ....so on )
  • 5
    Что делает ваша функция InfiniteLoop() ? Прямо сейчас только эта функция может быть источником ошибки
Теги:
arrays
random

3 ответа

2
Лучший ответ

Если вам нужно 500 различных случайных чисел от 0 до 5000, то вам, вероятно, следует использовать shuffle() и array_slice():

$allNumbers = range(0, 5000);

shuffle($allNumbers);

$randomNumbers = array_slice($allNumbers, 0, 500);
  • 0
    Очень классное альтернативное решение для ОП. Я думаю, что даже лучше, чем его нынешний. И если он не покажет нам свой код, чтобы показать ОП, ошибка. Я думаю, что это ответ здесь
0

Использование:

$allNumbers = [];

for ($i = 0; $i < 5000; $i++) {
    $allNumbers[] = $i;
}

uniqid($allNumbers);
0

Проблема может быть вашей функцией "InfiniteLoop", она заменяет результаты rand()

  • 0
    Это комментарий, а не ответ, и для этого уже есть комментарий!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню