PHP随机数生成代码与使用实例分析


Posted in PHP onApril 08, 2011

我们还可以使用随机数设计任何我们想象的程序结构。

首先来认识一下PHP提供的随机数函数rand()。PHP的rand()函数将返回随机整数,具体使用方法如下

rand(min,max)

可选参数min和max可以使rand() 返回0到RAND_MAX之间的伪随机整数。例如,想要5到15(包括 5 和 15)之间的随机数,用 rand(5, 15)。

下面我来看一个具体的示例,我们做一个基本的函数调用,不设置具体的参数,我们得到的随机数将不受min和max两个参数的限制。

<? echo(rand());?>

得到的结果:652696728 (随机结果)1、使用PHP生成指定区间内的随机数如果我们要生成两个数字之间的随机数,我们需要为rand设定两个参数:这样,我们得到的结果就在我们的控制之中,他应该是MinNum <= result <= MaxNum;假设我们要使用PHP生成10000到2000之间的随机数,我们的代码应该这样写:
echo(rand(1000,2000));?>

够简单吧,下面来点稍微有些难度的。在本文的开始我们说过,随机数的作用很大,我们可以用PHP随机数解决一些复杂的问题。2、使用PHP获得一个集合中的随机元素将设我们需要从一个数组中获得一个随机元素
$my_array=array('ASP','PHP','JAVASCRIPT','AJAX','CSS','JQUERY','HTML'); 
echo($my_array[rand(0,6)]); 
?>

可以想象,我们得到的结果可能是ASP、PHP或JavaScript等任何一个包含在数组中的元素。注意,我们的my_array数组包含七个元素,我们将rand()的参数设置为0到6之间。下面我们使用两组随机数对上面的示例做功能增强,我们需要一个随机数进行条件判断,另一个随机数做元素的输出。
$my_array=array('ASP','PHP','JAVASCRIPT','AJAX','CSS','JQUERY','HTML'); 
$repetition=rand(0,6); 
for($i=0;$i<=$repetition;$i++){ 
echo('I am learning ' . $my_array[rand(0,6)]); 
echo(' on 51CTO.com'); 
} 
?>

我们得到的结果可能像下面这样:

PHP随机数生成代码与使用实例分析
第一次运行我们得到三条结果

由于我们使用一个随机数限定显示的条数,所以得到的结果除了文章随机,显示的条数也是随机的,如下图:

PHP随机数生成代码与使用实例分析
第二次运行得到七条结果

也许你会问,PHP随机数只能做这些无聊的事儿吗?rand( )看来并不是那么重要;你错了,想想随处可见的验证码、一些CMS系统的随机文章提取、下载地址分配等,随机数在这些应用中发挥着重要作用;另外,在安全和算法领域,随机数的很多应用也值得我们去深入研究,比如加密和同余法结构等。

PHP 相关文章推荐
用libtemplate实现静态网页生成
Oct 09 PHP
利用PHP制作简单的内容采集器的原理分析
Oct 01 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
PHP中for与foreach的区别分析
Mar 09 PHP
在wamp集成环境下升级php版本(实现方法)
Jul 01 PHP
PHP小教程之实现链表
Jun 09 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
Mar 21 PHP
thinkPHP5.0框架开发规范简介
Mar 25 PHP
thinkPHP5 ACL用户权限模块用法详解
May 10 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 PHP
laravel 关联关系遍历数组的例子
Oct 10 PHP
PHP实现简易用户登录系统
Jul 10 PHP
PHP的cURL库功能简介 抓取网页、POST数据及其他
Apr 07 #PHP
php curl 登录163邮箱并抓取邮箱好友列表的代码(经测试)
Apr 07 #PHP
The specified CGI application misbehaved by not returning a complete set of HTTP headers
Mar 31 #PHP
PHP stream_context_create()作用和用法分析
Mar 29 #PHP
php中突破基于HTTP_REFERER的防盗链措施(stream_context_create)
Mar 29 #PHP
PHP 5.3 下载时 VC9、VC6、Thread Safe、Non Thread Safe的区别分析
Mar 28 #PHP
php中关于普通表单多文件上传的处理方法
Mar 25 #PHP
You might like
极典R601SW收音机
2021/03/02 无线电
PHP has encountered an Access Violation
2007/01/15 PHP
php flush类输出缓冲剖析
2008/10/19 PHP
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
2014/01/26 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
PHP中include/require/include_once/require_once使用心得
2016/08/28 PHP
php性能分析之php-fpm慢执行日志slow log用法浅析
2016/10/17 PHP
php+webSoket实现聊天室示例代码(附源码)
2017/02/17 PHP
javascript 写类方式之九
2009/07/05 Javascript
jquery获取div宽度的实现思路与代码
2013/01/13 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
jQuery插件Skippr实现焦点图幻灯片特效
2015/04/12 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
浅析JS运动
2015/12/28 Javascript
基于MVC5和Bootstrap的jQuery TreeView树形控件(一)之数据支持json字符串、list集合
2016/08/11 Javascript
使用ajaxfileupload.js实现上传文件功能
2016/08/13 Javascript
jQuery 实现ajax传入参数含有特殊字符的方法总结
2016/10/17 Javascript
php 修改密码实现代码
2017/05/24 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
在AngularJs中设置请求头信息(headers)的方法及不同方法的比较
2018/09/04 Javascript
Vue filter格式化时间戳时间成标准日期格式的方法
2018/09/16 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
[42:50]NB vs VP 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
使用python实现strcmp函数功能示例
2014/03/25 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
python实现机器学习之多元线性回归
2018/09/06 Python
基于Python的Post请求数据爬取的方法详解
2019/06/14 Python
python函数不定长参数使用方法解析
2019/12/14 Python
css3制作彩色边线3d立体按钮的示例(css3按钮)
2014/05/06 HTML / CSS
波兰数码相机及配件网上商店: Cyfrowe.pl
2017/06/19 全球购物
写给女朋友的检讨书
2014/01/28 职场文书
房屋过户委托书范本
2014/10/07 职场文书
趵突泉导游词
2015/02/03 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
红色故事汇观后感
2015/06/18 职场文书