2010-10-05 81 views

回答

7
$numbers = range(0,9999); 
shuffle($numbers); 
foreach($numbers as $number) { 
    echo str_pad($number,4,'0',STR_PAD_LEFT),'<br />'; 
} 
1

编辑:

这里..

$randarr = array(); 
for ($i = 0; $i < 9999; $i++) { 
    array_push($randarr, $i); 
} 

shuffle($randarr); 

foreach($randarr as $randval) { 
    echo $randval . "\n"; 
} 
+1

没有我的意思是我想拥有的每个数字回声出从0000到9999,而不是为了。它不应该是0000,0001,0002.它应该是编辑的9328,1283,6839等 – 2010-10-05 11:34:39

+0

。下面是示例运行:http://codepad.org/NQGRyyFC – Ruel 2010-10-05 11:42:07

+0

Mike,shuffle()函数随机混合了数组的值。数字列表将不再按顺序排列。 – syrion 2010-10-05 11:53:05

-1

退房PHP的rand()函数。

你可以这样做:

for ($counter=0; $counter < 10000; $counter += 1) { 
    $rand=rand(0,9999); echo $rand."<br />"; 
} 
+0

这只会在随机点开始列表。 – Vache 2010-10-05 11:36:42

2

要产生0000到9999的列表,你可以做这样的事情:

<?php 

$array_list = array(); 
$end =9999; 
for($idx=0; $idx<=$end; $idx++) 
{ 
    $array_list[$idx] = str_pad($idx, 4, 0, STR_PAD_LEFT); 
} 
?> 

随机生成列表中,你可以使用array_rand ():

<?php 
for($idx=0; $idx<=9; $idx++) 
{ 
    echo array_rand($array_list); 
} 
?> 
1

PHP确实有一些基本功能来生成这个范围:

$aRange = range(0, 9999); 
shuffle($aRange); 
print_r($aRange); 

打印的4位数字输出:

foreach($aRange as $number) { 
    print str_pad($number, 4, 0, STR_PAD_LEFT); 
}