background image

for($i=0; $i < count($arr);$i++)
{
 $result .= $arr[$i].',';
}
$result = substr($result, 0, -1);
echo $result;
?>
程序运行如下:
1 2,3,4,6,7,8,9,10,11,12,13,16,20,21,22,24
补充几点说明:
1、生成随机数时用了 mt_rand() 函数。这个函数生成随机数的平均速度要比 rand() 快四

倍。

2、去除数组中的重复值时用了&ldquo;翻翻法&rdquo;,就是用 array_flip() 把数组的 key 

 value 交换两次。这种做法比用 array_unique() 快得多。

3、返回数组前,先使用 shuffle() 为数组赋予新的键名,保证键名是 0-n 连续的数字。如

果不进行此步骤,可能在删除重复值时造成键名不连续,给遍历带来麻烦。

再看一实例
生成

0-z 这 36 个字符中的一个。每次调用 getOptions() 方法生成一个字符,它们的存储

如下:

array[0] = 0, array[1] = 1, &hellip;&hellip;, array[35] = z。

Array ( 
 [0] => 0 
 [1] => 1 
 [2] => 2 
 [3] => 3 
 [4] => 4 
 [5] => 5 
 [6] => 6 
 [7] => 7 
 [8] => 8 
 [9] => 9 
 [10] => a 
 [11] => b 
 [12] => c 
 [13] => d 
 [14] => e 
 [15] => f 
 [16] => g 
 [17] => h 
 [18] => i 
 [19] => j 
 [20] => k 
 [21] => l 
 [22] => m 
 [23] => n