• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >建站教程 > PHP指定范围内且不重复的随机值方法

PHP指定范围内且不重复的随机值方法

作者:站长图库 字体:[增加 减小] 来源:互联网

站长图库向大家介绍了PHP随机值,指定范围内且不重复等相关知识,希望对您有所帮助

代码案列

生成10个1到100范围内的不重复随机数

<?php/** array unique_rand( int $min, int $max, int $num )* 生成一定数量的不重复随机数,指定的范围内整数的数量必须* 比要生成的随机数数量大* $min 和 $max: 指定随机数的范围* $num: 指定生成数量*/function unique_rand($min, $max, $num) {  $count = 0;  $return = array();  while ($count < $num) {    $return[] = mt_rand($min, $max);    $return = array_flip(array_flip($return));    $count = count($return);  }  //打乱数组,重新赋予数组新的下标  shuffle($return);  return $return;}  $arr = unique_rand(1, 100, 10);echo implode($arr, ",");?>

程序运行如下:

48,5,19,36,63,72,82,77,46,16

代码说明

1、生成随机数时我们用了 mt_rand() 函数。这个函数生成随机数的平均速度要比 rand() 快几倍。

2、去除数组中的重复值时用了“翻转法”,就是用 array_flip() 把数组的 key 和 value 交换两次。这种做法在去除数组重复值的同时效率也比用 array_unique() 快得多。

3、返回数组前,先使用 shuffle() 为数组赋予新的键名,保证键名是 0-n 连续的数字。如果不进行此步骤,可能在删除重复值时造成键名不连续,如果用for遍历的时候会有问题,但如果用foreach或不需要遍历的时候可以不需要shuffle。


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • PHP指定范围内且不重复的随机值方法

相关文章

  • 分享推荐一款好用的TP富文本编辑器-CKEditor
  • 织梦DedeCMS后台添加一键推送百度站长、MIP、熊掌号功能
  • Photoshop设计3D效果的月牙状LOGO
  • Photoshop制作光滑的金色发光字
  • 详解php中函数的引用传递和返回 (附代码)
  • 怎么通过宝塔面板实现MySQL性能简单调优
  • PHP怎么实现加好友功能
  • php如何替换img中src内容
  • 帝国CMS二次开发付款后才能查看内容
  • 浅谈nodejs利用node-xlsx模块读取excel数据的方法

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • 浅谈css grid比Bootstrap更适合创建布局的原因
    • 微信小程序自定义tabbar组件
    • 帝国CMS灵动标签调用当天更新的标题文字显示红色其他颜色变成灰色
    • 帝国CMS多值字段for循环调用调用方法
    • 分享Laravel整合Bootstrap4的完整方案
    • 在非Laravel项目中怎么使用Validator验证器
    • LayUI如何实现数据分页功能
    • PHP中如何使用构造方法和this关键字?如何引入构造方法?
    • 深入解析微信小程序页面中实现的保存图片(附代码)
    • 关于WordPress删除xmlrpc.php防DDOS攻击

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有