我的编程空间,编程开发者的网络收藏夹
学习永远不晚

深思 PHP 数组遍历的差异(array_diff 的实现)284627实例

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

深思 PHP 数组遍历的差异(array_diff 的实现)284627实例

前两天看到有人要编个考试系统,当时只是简单回了下用随机函数RND

  实际一般需要从数据库中随机提取N道题目。

  以下代码都基于VBS;

  通常的编写类似这样的

'产生不重复随机数
function rndarray(istart,iend,sum)
dim arrayid(),i,j,blnre,temp,iloop,eloop
redim arrayid(sum-1)
i=0
iloop=0
eloop=0
blnre=false
randomize
do while i<sum
temp=int(rnd*(iend-istart+1)+istart)
if i=0 then
arrayid(0)=temp
i=i+1
iloop=iloop+1
else

for j=0 to i-1
if arrayid(j)=temp then
blnre=true
iloop=iloop+1
exit for'这一句很重要,防止多余的循环
else
iloop=iloop+1
end if
next

 if blnre=false then
 arrayid(i)=temp
 i=i+1
 else
 blnre=false
 end if

end if
eloop=eloop+iloop
iloop=0
loop
rndarray=join(arrayid)&"循环次数:"&eloop
end function

response.write rndarray(1,10,5)&"<br>"'调用过程


  PS。其中的iloop、eloop是为了计算循环次数而已。

  以上,大多数人的都是用这种方法编写的,生成一个随机数,然后再和以前生成的做比较,判断是否可用;

  但这不是一种AI的,或者说有效率的方法,为什么不用两个数组呢?

  数组1,存放需要的字符串,或数字等,数组2存放生成的随机数;当每次随机生成中间变量temp的一个下标x,赋给数组2,然后从数组1中,去掉下标为x的数字,赋给中间变量temp;这样每生成一个随机数,就从数组1中拿掉这个数,下次再生成一个数就不会重复了,这种产生随机数的方法原理实际是从数组1中提取。

  方法二

function rndstr(istart,iend,isum)
dim i,j,vntarray()
redim vntarray(iend-istart)
j=istart
for i=0 to iend-istart
vntarray(i)=j
j=j+1
next

dim vntarray2(),temp,x,y
redim vntarray2(isum-1)
y=iend-istart+1
x=0
temp=vntarray
do while x<isum
dim a
randomize
vntarray2(x)=temp(int(rnd*y))
a=" "&vntarray2(x)&" "
temp=split(trim(replace(chr(32)&join(temp)&chr(32),a," ")))
x=x+1
y=y-1
loop
rndstr=join(vntarray2)
end function

response.write rndstr(1,5,2)


  这样,是不是更简单呢

  展开一下,假如要生成随机字符串,包含字母数字时,仅需为数组1赋值时,用函数chr(num);

  假设,需要做一个手机中奖的页面程序。

  首先把值赋给数组1,可以130....~139....循环赋值,当然实际使用时从数据库中把已有的赋值,然后再随机提取赋给数组2;

  最后,再修饰一下

temp=replace(join(array2),chr(32),"")
phone=left(temp,6)&"***"&right(temp,2)

  得到类似137648***58的结果,呵呵

  写那么多,累死了~~

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

深思 PHP 数组遍历的差异(array_diff 的实现)284627实例

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

深思 PHP 数组遍历的差异(array_diff 的实现)284627实例

深思 PHP 数组遍历的差异(array_diff 的实现)284627实例
2023-05-20

深思 PHP 数组遍历的差异(array_diff 的实现)284455示例

深思 PHP 数组遍历的差异(array_diff 的实现)284455示例
2023-05-20

深思 PHP 数组遍历的差异(array_diff 的实现)284435示例

深思 PHP 数组遍历的差异(array_diff 的实现)284435示例
2023-05-20

深思 PHP 数组遍历的差异(array_diff 的实现)284475解决

深思 PHP 数组遍历的差异(array_diff 的实现)284475解决
2023-05-20

深思 PHP 数组遍历的差异(array_diff 的实现)284587实现方法

深思 PHP 数组遍历的差异(array_diff 的实现)284587实现方法
2023-05-20

深思 PHP 数组遍历的差异(array_diff 的实现)284567(思路详解)

深思 PHP 数组遍历的差异(array_diff 的实现)284567(思路详解)
2023-05-20

深思 PHP 数组遍历的差异(array_diff 的实现)284415处理办法

深思 PHP 数组遍历的差异(array_diff 的实现)284415处理办法
2023-05-20

深思 PHP 数组遍历的差异(array_diff 的实现)284607处理办法

深思 PHP 数组遍历的差异(array_diff 的实现)284607处理办法
2023-05-20

深思 PHP 数组遍历的差异(array_diff 的实现)284815问题及解决

深思 PHP 数组遍历的差异(array_diff 的实现)284815问题及解决
2023-05-21

PHP中数组差异计算的高效实现

PHP中数组差异计算是一个常见的操作,通常用于比较两个数组之间的差异,并找出其中的相同、新增和删除项。在本文中,将介绍一种高效的实现方法,并提供具体的代码示例。在PHP中,可以使用array_diff函数来计算两个数组的差异。该函数接受两
PHP中数组差异计算的高效实现
2024-03-13

PHP实现数组差异计算的简便方法

PHP是一种广泛应用于Web开发领域的编程语言,其强大的数组处理功能为开发者提供了许多便利。在实际开发过程中,经常会遇到需要比较两个数组之间的差异,并进行相应处理的情况。本文将介绍在PHP中实现数组差异计算的简便方法,并提供具体的代码示例。
PHP实现数组差异计算的简便方法
2024-03-13

利用PHP中的while循环语句实现数组遍历

标题:利用PHP中的while循环语句实现数组遍历在PHP编程中,数组是一种非常常用的数据结构,而遍历数组也是开发中经常遇到的需求之一。在PHP中,我们可以利用while循环语句来实现数组遍历,通过遍历数组可以对其中的每个元素进行操作,处
利用PHP中的while循环语句实现数组遍历
2024-03-07

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录