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模块memcache和memcached区别分析
Jun 14 PHP
PHP函数spl_autoload_register()用法和__autoload()介绍
Feb 04 PHP
php缩放图片(根据宽高的等比例缩放)实例介绍
Jun 09 PHP
深入PHP FTP类的详解
Jun 13 PHP
10个简化PHP开发的工具
Dec 25 PHP
PHP使用in_array函数检查数组中是否存在某个值
Mar 25 PHP
PHP四种基本排序算法示例
Apr 09 PHP
php将数组存储为文本文件方法汇总
Oct 28 PHP
thinkPHP5.0框架命名空间详解
Mar 18 PHP
PHP实现的简单操作SQLite数据库类与用法示例
Jun 19 PHP
Laravel基础_关于view共享数据的示例讲解
Oct 14 PHP
PHP实现倒计时功能
Nov 16 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
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
PHP 远程文件管理,可以给表格排序,遍历目录,时间排序
2009/08/07 PHP
php过滤html中的其他网站链接的方法(域名白名单功能)
2014/04/24 PHP
php中explode的负数limit用法分析
2015/02/27 PHP
Redis在Laravel项目中的应用实例详解
2017/08/11 PHP
详解PHP发送邮件知识点
2018/05/06 PHP
详解如何实现Laravel的服务容器的方法示例
2019/04/15 PHP
JS的IE和Firefox兼容性集锦
2006/12/11 Javascript
js window.event对象详尽解析
2009/02/17 Javascript
JQueryEasyUI datagrid框架的基本使用
2013/04/08 Javascript
jquery 关于event.target使用的几点说明介绍
2013/04/26 Javascript
JS定时关闭窗口的实例
2013/05/22 Javascript
Node.js抓取中文网页乱码问题和解决方法
2015/02/10 Javascript
javascript+HTML5 Canvas绘制转盘抽奖
2020/05/16 Javascript
jQuery根据表单name获取值的方法
2016/05/24 Javascript
轻松实现js弹框显示选项
2016/09/13 Javascript
Bootstrap 网站实例之单页营销网站
2016/10/20 Javascript
利用JS对iframe父子(内外)页面进行操作的方法教程
2017/06/15 Javascript
关于Vue实现组件信息的缓存问题
2017/08/23 Javascript
Vue的百度地图插件尝试使用
2017/09/06 Javascript
详解Vuex中mapState的具体用法
2017/09/28 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
vue+axios+mock.js环境搭建的方法步骤
2018/08/28 Javascript
ES6对象操作实例详解
2020/05/23 Javascript
vue 项目中当访问路由不存在的时候默认访问404页面操作
2020/08/31 Javascript
Python随机生成带特殊字符的密码
2016/03/02 Python
在cmd命令行里进入和退出Python程序的方法
2018/05/12 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
Python实现的统计文章单词次数功能示例
2019/07/08 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
如何利用python发送邮件
2020/09/26 Python
播音主持女孩的自我评价分享
2013/11/20 职场文书
房屋出售授权委托书
2014/10/12 职场文书
罗马假日观后感
2015/06/08 职场文书
运动员入场前导词
2015/07/20 职场文书
2016初一新生军训心得体会
2016/01/11 职场文书