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 之入门篇
Dec 04 PHP
JS与PHP向函数传递可变参数的区别实例代码
May 18 PHP
php中inlcude()性能对比详解
Sep 16 PHP
php中is_null,empty,isset,unset 的区别详细介绍
Apr 28 PHP
基于session_unset与session_destroy的区别详解
Jun 03 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 PHP
PHP捕获Fatal error错误的方法
Jun 11 PHP
Linux中为php配置伪静态
Dec 17 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
Jan 21 PHP
PHP 生成N个不重复的随机数
Jan 21 PHP
php使用parse_url和parse_str解析URL
Feb 22 PHP
示例详解Laravel的注册重构
Aug 14 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 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
2011/07/17 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
2013/11/13 PHP
php+ajax实现文章自动保存的方法
2014/12/30 PHP
php使用unset()删除数组中某个单元(键)的方法
2015/02/17 PHP
windows server 2008/2012安装php iis7 mysql环境搭建教程
2016/06/30 PHP
javaScript 关闭浏览器 (不弹出提示框)
2010/01/31 Javascript
js对象的比较
2011/02/26 Javascript
js中获取事件对象的方法小结
2011/03/13 Javascript
按钮JS复制文本框和表格的代码
2011/04/01 Javascript
学习Angularjs分页指令
2016/07/01 Javascript
完美解决jQuery 鼠标快速滑过后,会执行多次滑出的问题
2016/12/08 Javascript
浅谈在Vue-cli里基于axios封装复用请求
2017/11/06 Javascript
Spring Boot/VUE中路由传递参数的实现代码
2018/03/02 Javascript
如何在js代码中消灭for循环实例详解
2018/07/29 Javascript
Jquery ajax书写方法代码实例解析
2020/06/12 jQuery
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
[43:24]2018DOTA2亚洲邀请赛3月29日 小组赛A组 LGD VS Liquid
2018/03/30 DOTA
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
Python面向对象之继承和多态用法分析
2019/06/08 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
python利用appium实现手机APP自动化的示例
2021/01/26 Python
css3动画效果抖动解决方法
2018/09/03 HTML / CSS
新闻专业本科生的自我评价分享
2013/11/20 职场文书
国际贸易专业自荐信
2014/06/10 职场文书
植树节口号
2014/06/21 职场文书
师范学院毕业生求职信
2014/06/24 职场文书
2014年第四季度入党积极分子思想汇报(十八届四中全会)
2014/11/03 职场文书
美术教师个人总结
2015/02/06 职场文书
大学生入党自荐书
2015/03/05 职场文书
公司地址变更通知
2015/04/25 职场文书
2015年客房服务员工作总结
2015/05/15 职场文书
2019职场单身人才调研报告:互联网行业单身比例最高
2019/08/07 职场文书
详解MySQL中的主键与事务
2021/05/27 MySQL
Python语言中的数据类型-序列
2022/02/24 Python
mysql sock 文件解析及作用讲解
2022/07/15 MySQL