2015-02-23 20 views
0

你好當我嘗試使用rand()功能比它給某個空像爲什麼php 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()'函數做了什麼?現在只有這個函數可能是錯誤的來源 – Rizier123 2015-02-23 09:34:22

回答

2

如果你想在0和5000之間500張不同隨機數,那麼你或許應該使用shuffle()array_slice()

$allNumbers = range(0, 5000); 

shuffle($allNumbers); 

$randomNumbers = array_slice($allNumbers, 0, 500); 
+0

非常酷的OP替代解決方案。我覺得他現在更好。如果他沒有向我們展示他的代碼來顯示OP錯誤。我認爲這是這裏的答案 – Rizier123 2015-02-23 09:52:19

0

的問題可能是你的「InfiniteLoop」功能,它是overwritting蘭特)的結果(

+0

這是一條評論而不是答案,並且已經有一條評論! – Rizier123 2015-02-23 09:39:52

0

用途:

$allNumbers = []; 

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

uniqid($allNumbers); 
相關問題