亲爱的网友们,相信很多人对php从数组中随机取几个元素组成新的数组和php生成不重复随机数、数组的4种方法分都不是特别了解,因此今天我来为大家分享一些关于php从数组中随机取几个元素组成新的数组和php生成不重复随机数、数组的4种方法分的知识,希望能够帮助大家解决这些问题。

本文目录一览

php从数组中随机取几个元素组成新的数组

$a=array(1,2,3,4,5,6,7,8,9,10);
$b=array_rand($a,5);
print_r($b);

返回目录

php生成不重复随机数、数组的4种方法分享

下面写几种生成不重复随机数的方法,直接上代码吧
代码
代码如下:
<?php
define('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);//随机打乱数组
$result
=
array_slice($numbers,
1,
COUNT);
return
$result;
}
function
rand2()
{
$result
=
array();
while(count($result)<
COUNT)
{
$result[]
=
mt_rand(1,
RANDOM_MAX);//mt_rand()是比rand()更好更快的随机函数
$result
=
array_unique($result);
//删除数组中重复的元素
}
return
$result;
}
function
rand3()
{
$result
=
array();
while(count($result)
<
COUNT)
{
$_tmp
=
mt_rand(1,
RANDOM_MAX);
if(!in_array($_tmp,
$result))
{//当数组中不存在相同的元素时,才允许插入
$result[]
=
$_tmp;
}
}
return
$result;
}
function
rand4()
{
$result
=
array();
while
(count($result)
<
COUNT)
{
$result[]
=
mt_rand(1,
RANDOM_MAX);
$result
=
array_flip(array_flip($result));//array_flip将数组的key和value交换
}
return
$result;
}
class
time
{
private
$_start;
public
function
time_start()
{
$this->_start
=
$this->microtime_float();
}
public
function
time_spend()
{
return
$this->microtime_float()
-
$this->_start;
}
private
function
microtime_float()
{
list($usec,
$sec)
=
explode("
",
microtime());
return
((float)$usec
+
(float)$sec);
}
}
?>

返回目录

总结:以上就是本站针对你的问题搜集整理的答案,希望对你有所帮助。