用array_rand()函数吧,它可以从一个数组中随机取一个或者多个下标出来,有了下标,就可以从原数组拿到对应的元素了。它的用法也很简单:array_rand($arr[,
创新互联是一家专业提供涟水企业网站建设,专注与网站制作、成都网站制作、H5高端网站建设、小程序制作等业务。10年已为涟水众多企业、政府机构等服务。创新互联专业网站建设公司优惠进行中。
$num])$arr
==
用来取元素的数组$num
==
随机取下标的个数其中第二个参数
$num
是可选的,默认为1
。注意:它的返回值在第二个参数大于
1
的时候是一个数组;当第二个参数不设或者传值
1
的时候是一个下标。简单的示例代码如下:1、第二个参数不传值的情况;$arr
=
Array('a',
'b');$rndKey
=
array_rand($arr);echo
$arr[$rndKey];//输出
a
或者
b2、第二个参数传值大于
1
的情况;$arr
=
Array('a',
'b',
'c',
'd');$rndKey
=
array_rand($arr,
2);print_r($rndKey]);//输出一个随机key的数组
呵呵 这不是选双色球彩票吗?
十个名字放数组里,数组下标1~10
$randnum = mt_rand(1,10); //得到随机值,这样就行了
如果要选N个,那就循环一下,但是要记下已经选择过的数,免得重复选择。
代码如下,思路正确,若有程序问题的话自己改改吧~~~
$selected = array(); //记录已经选出来的数
for ($i=1; $i=10; $i++)
{
$selected[$i] = -1; //初始化
$randnum = mt_rand(1,10); //得到随机值,这样就行了
//比较下是不是重复了,重复就$i--,重新来
$repeat=false;
for($j=0;$j$i;$j++)
{
if($randnum==$selected[$j])
{$i--;$repeat=true;break;}
}
if (!$repeat) //没重复就取这个值,继续
$selected[$i] = $randnum ; //记录已经得到的值
}
最后$selected[] 里面就是N个随机数
1、
$a = array(1,2,3,4,5,6,7,8,9,10);
$b = array_rand($a,5);
foreach($b as $k=$v){
$arr[]=$a[$v];
}
print_r($arr);
2、
$arr=$a;
shuffle($arr);
$arr=array_slice($arr,0,5);
print_r($arr);
当然是用数据库啊,不知道你有没有学过数据库,根据你的功能只需要设计一张表就行了,表中包含的字段array(数组,建议用json字符串来存储,使用的时候转化),update_time(刷新时间),value(随机元素的值),至少要有这几个字段,其他的根据你的功能增加。