重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
直接使用while循环来处理,循环使用随机函数mt_rand,将随机数存入一个数组中,作为判断数据是否重复的依据(in_array);使用glob函数来判断new目录下的文章篇数,作为生成随机数的最大值;整体代码如下:
十余年的太和网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。网络营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整太和建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“太和网站设计”,“太和网站推广”以来,每个客户项目都认真落实执行。
执行后的效果:
代码操作:
?php
//获取文件夹下html的数量
$max_num = glob("xxx/new/*.html");
$num = 0;
$rand_num = [];
$result_arr = [];
while($num 100){
$tample_num = mt_rand(1,$max_num);
if(!in_array($tample_num,$rand_num)){
$rand_num[] = $tample_num;
$result_arr[] = "".$tample_num.".html";
$num++;
}
}
foreach($result_arr as $v){
echo $v."hr/";
}
echo "数组的大小". count($result_arr);
array_rand()
在你想从数组中取出一个或多个随机的单元时相当有用。它接受
input
作为输入数组和一个可选的参数
num_req,指明了你想取出多少个单元
-
如果没有指定,默认为
1。
如果你只取出一个,array_rand()
返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。
主要是用array_rand()方法
直接用select * from student order by rand() limit 5不是一个很好的习惯,这个要考虑到数据库的大小问题,比如,数据量为10W以上,这样查询的效率是非常低的,资源也消耗挺多!你可以考虑在php与mysql结合来实现,比如:先用mysql 的count()计算出student的总条数$sum_num,赋值到php中的变量中,后在php中更具这个总条数进行生成随机数(这里涉及到你的5条数据是否为连续的5条随机数,还是打乱的随机五条),这里如果生成连续的数据就只需要生成一个小于$sum_num-5的随机数就可以了!根据这个随机数进行limit取出5条就可以;如果这里需要生成打乱的随机数,就需要生成5个不相同的并且小于$sum_num随机数,最后根据这些随机数在数据库中查询,第一种情况用到limit 随机数,5;;第二种情况用到in(随机数1,随机数2,随机数3,随机数4,随机数5);在数据量大的情况下,这样的效率和资源消耗的情况下都要比select * from student order by rand() limit 5好得多,当然如果数据量不多的话就用这个也可以!只是给你普及个知识!祝你学习愉快!(这里暂且认为你会用php生成随机数并且这里的php生成的随机数必须为大于0的整型哦,不会的话可以先百度、google,最后可以继续给我留言)!
这里因为你的id会有缺失所以有的方法不适用!就不一一列举了!