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

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

作者:站长图库 字体:[增加 减小] 来源:互联网 时间:2022-04-29

站长图库向大家介绍了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指定范围内且不重复的随机值方法

相关文章

  • 2022-04-29wordpress错误提示”抱歉,由于安全原因,这个文件类型不受支持。”解决方法
  • 2022-04-29CDR简单制作光晕效果
  • 2022-04-29ThinkPHP中自定义错误、成功、异常提示页面的方法
  • 2022-04-29干货分享:CSS 9种方法实现不定宽高的垂直水平居中
  • 2022-04-29Centos7下宝塔面板PHP7.3怎么安装sqlsrv扩展
  • 2022-04-29PhotoShop简单制作蓝色洁净星星文字效果教程
  • 2022-04-29PS制作质感的立体字
  • 2022-04-29浅谈Nodejs中的callback回调
  • 2022-04-29Centos MySQL 忘记密码怎么办
  • 2022-04-29CentOS7如何使用yum安装PHP7.3

文章分类

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

最近更新的内容

    • Illustrator绘制动感绚丽的广告背景
    • 这几个WordPress插件存在高危漏洞!
    • DEDECMS5.7使用kindeditor编辑器栏目内容无法保存
    • 解决LNMP环境安装WordPress不显示主题,无法编辑的教程
    • AI教程圆环渐变LOGO设计教程
    • renderjs有什么用?聊聊uniapp中用renderjs的一些细节
    • PHP处理字符中的emoji表情(判断/移除/存储)
    • 百度与谷歌在SEO表现上的差别
    • PhotoShop CS6制作梦幻高光流线花体艺术字效教程
    • 帝国CMS内容字段域名替换函数

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

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