
下面写几种生成不重复随机数的方法,直接上代码吧
代码如下:
1 2 3 4 5 | <?phpdefine('RANDOM_MAX', 100);define(' COUNT ', 10);
echo 'max random num: '.RANDOM_MAX, ' ;result count :'. COUNT , '<br/>';
invoke_entry('rand1');invoke_entry('rand2');invoke_entry('rand3');invoke_entry('rand4');
function invoke_entry( $func_name ) { $time = new time(); $time ->time_start(); call_user_func( $func_name ); echo $func_name .' time spend: ', $time ->time_spend(); echo '<br/>';} function rand1() { $numbers = range (1, RANDOM_MAX); shuffle( $numbers );
?>
|
Salin selepas log masuk
说一下第四种方法,就是翻翻法了,利用array_flip()
将数组的键和值翻转,利用php数组特性,重复的键会覆盖,此时再翻转一次,就相同于去掉了重复的值。
以上几种方法只是简单的例子,有的方法适用范围有限。
在看看几种方法的效率:


用array_unique()
在数组较大时性能比较差,当然shuffle()
也会受此影响。
相关学习推荐:PHP编程从入门到精通
Atas ialah kandungan terperinci 分享php生成不重复随机数、数组的4种方法. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!