php 从一个数组中随机的取出若干个不同的数实例


Posted in PHP onDecember 31, 2016

第一种算法,CSDN上别人的想法 

$num = 0; 
  $array = array(1, 2, 3, 4, 5, 6, 7, 8, 9); 
  $arr = array(); 
  $g = 5; 
  $tag = true; 
  while ($tag) { 
    $count = count($array); 
    $t = rand(0, 1); 
    if ($t == 1) { 
      $arr[] = $array[$num]; 
      unset($array[$num]); 
    } 
    $num ++; 
    if (count($arr) == $g) { 
      $tag = false; 
    } 
    if ($num == $count) { 
      $num = 0;  //循环 
    } 
  } 
 var_dump($arr);

 第二种算法,自己想的。

可以在每次取出数据之后将该数据和最后没有获取的数据替换,然后再去没有取得的数据中随机获取值  

function swap(&$a, &$b) 
  { 
    $temp = $b; 
    $b = $a; 
    $a = $temp; 
  } 
   
   
  $result = array(); 
  $src = array(); 
  for($i = 0 ; $i < 40 ; $i++) 
  { 
    $src[] = $i + 1; 
  } 
  $arr_len = count($src); 
  $count = 20; 
  $index = 0; 
  while($index < $count) 
  { 
    $random = rand(0, $arr_len - $index - 1); 
    $result[] = $src[$random]; 
    swap($src[$random] , $src[$arr_len - $index - 1]); 
    $index += 1; 
  } 
   
   
  print_r(json_encode($result)); 
  print_r(json_encode($src));

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

PHP 相关文章推荐
php $_SERVER[&quot;REQUEST_URI&quot;]获取值的通用解决方法
Jun 21 PHP
PHP学习笔记之一
Jan 17 PHP
基于php使用memcache存储session的详解
Jun 25 PHP
PHP中捕获超时事件的方法实例
Feb 12 PHP
使用PHP进行微信公众平台开发的示例
Aug 21 PHP
PHP 自动加载的简单实现(推荐)
Aug 12 PHP
Redis使用Eval多个键值自增的操作实例
Nov 04 PHP
微信公众号OAuth2.0网页授权问题浅析
Jan 21 PHP
PHP解耦的三重境界(浅谈服务容器)
Mar 13 PHP
PHP实现微信支付(jsapi支付)流程步骤详解
Mar 15 PHP
PHP面向对象程序设计模拟一般面向对象语言中的方法重载(overload)示例
Jun 13 PHP
php中yii框架实例用法
Dec 22 PHP
PHP文件操作详解
Dec 30 #PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 #PHP
CI框架实现框架前后端分离的方法详解
Dec 30 #PHP
php mysql实现mysql_select_db选择数据库
Dec 30 #PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
Dec 29 #PHP
微信公众号模板消息群发php代码示例
Dec 29 #PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 #PHP
You might like
PHP中header和session_start前不能有输出原因分析
2013/01/11 PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
2013/11/07 PHP
php自动加载autoload机制示例分享
2014/02/20 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
这些年、我收集的JQuery代码小结
2012/08/01 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
jquery性能优化高级技巧
2015/08/24 Javascript
实例详解jQuery的无new构建
2016/08/02 Javascript
ReactJs快速入门教程(精华版)
2016/11/28 Javascript
Bootstrap CSS组件之输入框组
2016/12/17 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
BootStrap表单宽度设置方法
2017/03/10 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
JS打印彩色菱形的实例代码
2018/08/15 Javascript
微信小程序实现搜索指定景点周边美食、酒店
2019/05/18 Javascript
js之切换全屏和退出全屏实现代码实例
2019/09/09 Javascript
解决Vue 移动端点击出现300毫秒延迟的问题
2020/07/21 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[01:51]DAC趣味视频-如何成为职业选手.mp4
2017/04/02 DOTA
python实现关键词提取的示例讲解
2018/04/28 Python
python 处理string到hex脚本的方法
2018/10/26 Python
Python嵌套函数,作用域与偏函数用法实例分析
2019/12/26 Python
keras小技巧——获取某一个网络层的输出方式
2020/05/23 Python
python 还原梯度下降算法实现一维线性回归
2020/10/22 Python
雅诗兰黛加拿大官网:Estee Lauder加拿大
2019/07/31 全球购物
俄罗斯品牌服装在线商店:VIPAVENUE
2020/08/10 全球购物
新书吧创业计划书
2014/01/31 职场文书
运动会跳远加油稿
2014/02/20 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
合作协议书模板2014
2014/09/26 职场文书
会议邀请函
2015/01/30 职场文书
初中政治教师教学反思
2016/02/23 职场文书
使用pytorch实现线性回归
2021/04/11 Python
Go 内联优化让程序员爱不释手
2022/06/21 Golang