php使用数组array_rand()函数进行高效随机抽取指定条数的记录,可以随机抽取数据库中的记录,适合进行随机展示和抽奖程序。

该算法主要是利用php的array_rand()函数,下面看一下array_rand()函数的主要功能:

array_rand—从数组中随机取出一个或多个单元

mixed array_rand(array $input[,int $num_req] )

array_rand()在你想从数组中取出一个或多个随机的单元时相当有用。它接受input作为输入数组和一个可选的参数num_req,指明了你想取出多少个单元 - 如果没有指定,默认为 1。

如果你只取出一个,array_rand()返回一个随机单元的键名,否则就返回一个包含随机键名的数组。这样你就可以随机从数组中取出键名和值。

下面我们看一下小例子:

srand((float) microtime() * 10000000);

$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");

$rand_keys = array_rand($input, 2);

print $input[$rand_keys[0]] . "\n";

print $input[$rand_keys[1]] . "\n";

?>

该函数会随机抽取$list数组中的记录号,需要记录内容只需要输出即可。

下面看一段数据库随机抽取特定条记录的例子:

$list = $DB->where("status=1 and flag=1")->order('sort')->select();

unset($Case);

$count = count($list);

$rand_list=range(0, $count-1);

$rand_list = array_rand($rand_list, 10);

$tuijian_array = array();

foreach ($rand_list as $key) {

$tuijian_array[] = $list[$key];

}

unset($case_list);

print_r($tuijian_array);

?>

php 数组 随机选择_php中通过数组进行高效随机抽取指定条记录的算法相关推荐

  1. TODO:从数据库中随机抽取一条记录

    TODO:从数据库中随机抽取一条记录 1.最直接,最粗暴的方法先计算记录的总数,然后选择一个从0到记录总数之间的随机数n,利用skip跳过n条记录,这是效率低下的的方法,首先的记录总数,在用skip会 ...

  2. mysql数据库中查询第几条到第几条数据_在 mysql 数据库中,从查询结果的第四条记录开始选取5条记录,下面 sql 语句正确的是( )...

    [单选题]同一种货物,在同一线路上或平行线路上作相对方向的运送,而与对方运程的全部或一部分发生重迭交错的运输被称为( ). [多选题]水闸一般由()三部分组成 [单选题]在一个常规的统计表内,非必需包 ...

  3. php 获取array的长度_php中获取数组长度的方法

    php中获取数组长度的方法 php获取数组长度的方法,php为我们提供了两个函数可以计算一维数组长度,如count,sizeof都可以直接统计数组长度,还有获取二维数组的方法,在php中获取数组长度方 ...

  4. php中遍历数组_PHP中遍历数组的三种常用方法实例分析

    本文实例讲述了PHP中遍历数组的三种常用方法.分享给大家供大家参考,具体如下: 在PHP中操作最多的数据估计也就是数组了,有着效率高.速度快.存储方便的特点. PHP中遍历数组有三种常用的方法: 1. ...

  5. 多维数组和C#中的数组数组有什么区别?

    C#中的多维数组double[,]和数组数组double[][]什么区别? 如果存在差异,那么每个最好的用途是什么? #1楼 前言:此评论旨在解决okutane提供的答案 ,但是由于SO的愚蠢信誉系统 ...

  6. 输出php数组结构,在PHP中输出数组结构使用 函数 。

    在PHP中输出数组结构使用 函数 . 更多相关问题 南京长江第三大桥是什么时候通车的?() 抗爆性可以判断汽油在发动机中燃烧是否易于发生不正常的(). 道岔尖轨.心轨.基本轨的爬行.窜动量不得超()m ...

  7. JAVA中一维数组的作用,JAVA中一维数组和二维数组的定义

    在java中数组被看成是一个对象 在定义数组时,有两种定义方法:int[] a 和int a[]:第二种是C/C++对数组定义方式,对于JAVA建议采用第一种定义方式. 总的原则:任何对象在被调用之前 ...

  8. verilog中数组的定义_systemverilog中的数组操作

    sv中的数组基本操作:/* Exercsise platform :     Questa Sim 10.1b */ class Array; int array[9:0] ; function ne ...

  9. vue 监听map数组变化_vuex state中的数组变化监听实例

    前言 首先,因为我有一个需求就是vue组件中有一组多选框,选中多选框的内容,要在另一个组件中进行视图更新,这个就设计的兄弟组件之间的通信了,兄弟组件之前通信我首先选用的vuex这个解决办法. 问题 v ...

最新文章

  1. 微服务为什么一定要选spring cloud?
  2. 工业级PoE交换机是如何进行工作的?使用中要注意什么?
  3. 关于反射的我的一些看法
  4. PID控制器改进笔记之六:改进PID控制器之参数设定
  5. 微信网页开发教程 php,PHP实现微信网页授权开发教程,php授权教程_PHP教程
  6. Python-使用tkinter实现的摇骰子小游戏
  7. python中的urllib库_Python2/3中的urllib库
  8. 网管必须熟悉的几个网络DOS命令
  9. si4463 WDS生成文件和参数配置的关系
  10. linux下查看设备的接口,linux 查看sdio接口有哪些设备?
  11. 计算机软件包含多选题,2008年职称计算机多选习题第二章信息产业和计算机软件...
  12. 【解决】nacos Ignore the empty nacos configuration and get it based on dataId
  13. 树莓派Zero 2 W的自带WiFi性能测试,仅40Mbps左右
  14. 2021年阳江市高考成绩查询,阳江市召开2020年高考总结暨2021年新高考备考动员会...
  15. android wear 2.0 表盘开发,android wear手表开发如何获取所有的表盘(动态)以及切换表盘...
  16. OA产品:市场需求推动OA发展
  17. 38、生鲜电商平台-会员积分系统的设计与架构
  18. 【HTML】Canvas(3)-绘制图片
  19. C++11更新内容(2)--完美转发--默认移动构造/移动赋值--1116
  20. php报错:PHP Startup Unable to load dynamic library

热门文章

  1. 2021年春季学期-信号与系统-第五次作业参考答案-第二小题
  2. 摄像头自建html直播,html5调用摄像头实现拍照
  3. android 对比win10 耗电,win10系统下像何查看耗电的应用程序
  4. 扫码点餐小程序源码_扫码点餐小程序有什么用?怎么制作?
  5. 远洋整站下载器不能用https_这可能是最全最好的爆破百度文库下载指南了!
  6. oracle执行长任务,oracle 里面定时执行任务设置
  7. java构建词性词袋_词袋模型
  8. oracle转金额,ORACLE金额转换成英文大写的函数
  9. TX的8B/10B编码功能
  10. HDLBits 系列(37)此系列关于独热码的题目的疑问?