用PHP共享4种产生非重复随机数和数组的方法

用PHP共享4种产生非重复随机数和数组的方法
这里有几种方法可以直接生成代码,不产生随机数的重复。

复制代码代码如下所示:

< PHP

定义('random_max ',100);

定义(count,10);

echo'max随机数:'。random_max,';结果计数:伯爵;

invoke_entry('rand1);

invoke_entry('rand2);

invoke_entry('rand3);

invoke_entry('rand4);

功能invoke_entry($ func_name){

时间=新时间();

$时间> time_start();

call_user_func($ func_name);

回声func_name美元。时间花:',为时间-> time_spend();

回声';

}

功能rand1(){

$数=范围(1,random_max);

洗牌(数字);打乱随机数组

结果= array_slice美元(美元的数字,1,计数);

返回$结果;

}

功能rand2(){

结果=数组();

当(计数(结果)<计数){

结果mt_rand美元{ } =(1,random_max); / / mt_rand()是一个更好的功能比兰德和更快的随机()

结果= array_unique美元($结果); / /删除重复元素的数组

}

返回$结果;

}

功能RAND3(){

结果=数组();

当(计数(结果)<计数){

_tmp美元= mt_rand(1,random_max);

如果(!In_array ($_tmp, $result)) {/ / when the array does not exist in the same element, to allow insertion

结果{ } = _tmp美元美元;

}

}

返回$结果;

}

功能rand4(){

结果=数组();

当(计数(结果)<计数){

结果mt_rand美元{ } =(1,random_max);

结果= array_flip(array_flip美元($结果)); / / array_flip数组中的键和值的交换

}

返回$结果;

}

上课时间{

私人_start美元;
公共功能time_start(){

这_start =美元->美元-> microtime_float();

}

公共功能time_spend(){

返回这个-> microtime_float()-美元-> _start;

}

私有函数microtime_float(){

列表(USEC美元美元,SEC)=爆炸(

返回((浮动)$ USEC +(浮动)$秒);

}

}
>
说四种方法是通过使用array_flip()方法,将钥匙和使用PHP数组属性,值的数组翻转,重复键将覆盖,然后翻转一次,删除重复的值相同。

以上方法都是简单的例子,有些方法在应用范围上是有限的。

看看几种方法的效率:
array_unique()的性能较差时,阵列的大,当然,洗牌()也将受此影响
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部