2013-01-24 45 views
-3

我正在使用此代碼生成1000個記錄,每個記錄有6個數字,但我想要唯一的記錄。 我的方式是正確的嗎?獨特1000個記錄,6位數

<?php 

for ($i=1; $i<=1000; $i++) 
    { 
    echo "<br>"; 
    echo str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT); 
    } 

?> 
+2

你的方式是好的,但你不檢查,直到它填補了1000獨特的數字重複記錄 –

+0

使用數組和循環。 – Kermit

+3

從「100000」到「100999」;)這些數字中的每一個都有6位數字並且是唯一的。 *編輯:*您可能想更好地描述您的要求。 –

回答

1
<?php 
$numbers = array(); 
while (count($numbers)<1000) { 
    $numbers[] = str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT); 
    $numbers = array_unique($numbers); 
} 
foreach ($numbers as $number) { 
    echo $number."<br/>"; 
} 
?> 
+0

哇,調用'array_unique()'和'count()'一千次......這會更低效嗎? – nickb

+0

您可以用數字生成一個數組,例如1100個數字,運行array_unique並從數組中取前1000個數字。 – Antony

+0

您仍有可能無法生成1000個唯一號碼,現在您已經生成了超過您需要的100個號碼。 – nickb