数码资讯
用PHP共享4种产生非重复随机数和数组的方法
这里有几种方法可以直接生成代码,不产生随机数的重复。 复制代码代码如下所示: < PHP 定义('random_max ',100); 定义(count,10); echo'max随机数:'。random_max,';结果计数:伯爵; invoke_entry('rand1); invoke_ent
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
这里有几种方法可以直接生成代码,不产生随机数的重复。
复制代码代码如下所示:
< 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()的性能较差时,阵列的大,当然,洗牌()也将受此影响。
复制代码代码如下所示:
< 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()的性能较差时,阵列的大,当然,洗牌()也将受此影响。
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。