深思 PHP 數(shù)組遍歷的差異(array_diff 的實(shí)現(xiàn))
實(shí)際一般需要從數(shù)據(jù)庫(kù)中隨機(jī)提取N道題目。
以下代碼都基于VBS;
通常的編寫(xiě)類似這樣的
'產(chǎn)生不重復(fù)隨機(jī)數(shù) for j=0 to i-1 if blnre=false then end if response.write rndarray(1,10,5)&"<br>"'調(diào)用過(guò)程 |
PS。其中的iloop、eloop是為了計(jì)算循環(huán)次數(shù)而已。
以上,大多數(shù)人的都是用這種方法編寫(xiě)的,生成一個(gè)隨機(jī)數(shù),然后再和以前生成的做比較,判斷是否可用;
但這不是一種AI的,或者說(shuō)有效率的方法,為什么不用兩個(gè)數(shù)組呢?
數(shù)組1,存放需要的字符串,或數(shù)字等,數(shù)組2存放生成的隨機(jī)數(shù);當(dāng)每次隨機(jī)生成中間變量temp的一個(gè)下標(biāo)x,賦給數(shù)組2,然后從數(shù)組1中,去掉下標(biāo)為x的數(shù)字,賦給中間變量temp;這樣每生成一個(gè)隨機(jī)數(shù),就從數(shù)組1中拿掉這個(gè)數(shù),下次再生成一個(gè)數(shù)就不會(huì)重復(fù)了,這種產(chǎn)生隨機(jī)數(shù)的方法原理實(shí)際是從數(shù)組1中提取。
方法二
function rndstr(istart,iend,isum) dim vntarray2(),temp,x,y response.write rndstr(1,5,2) |
這樣,是不是更簡(jiǎn)單呢
展開(kāi)一下,假如要生成隨機(jī)字符串,包含字母數(shù)字時(shí),僅需為數(shù)組1賦值時(shí),用函數(shù)chr(num);
假設(shè),需要做一個(gè)手機(jī)中獎(jiǎng)的頁(yè)面程序。
首先把值賦給數(shù)組1,可以130....~139....循環(huán)賦值,當(dāng)然實(shí)際使用時(shí)從數(shù)據(jù)庫(kù)中把已有的賦值,然后再隨機(jī)提取賦給數(shù)組2;
最后,再修飾一下
temp=replace(join(array2),chr(32),"") phone=left(temp,6)&"***"&right(temp,2) |
得到類似137648***58的結(jié)果,呵呵
寫(xiě)那么多,累死了~~
- PHP 數(shù)組遍歷方法大全(foreach,list,each)
- PHP 數(shù)組遍歷foreach語(yǔ)法結(jié)構(gòu)及實(shí)例
- 深思 PHP 數(shù)組遍歷的差異(array_diff 的實(shí)現(xiàn))
- PHP 數(shù)組遍歷順序理解
- PHP多維數(shù)組遍歷方法(2種實(shí)現(xiàn)方法)
- php學(xué)習(xí)筆記 數(shù)組遍歷實(shí)現(xiàn)代碼
- PHP數(shù)組遍歷知識(shí)匯總(包含遍歷方法、數(shù)組指針操作函數(shù)、數(shù)組遍歷測(cè)速)
- php若干單維數(shù)組遍歷方法的比較
- PHP數(shù)組遍歷的幾種常見(jiàn)方式總結(jié)
相關(guān)文章
php中DOMElement操作xml文檔實(shí)例演示
DOMElement操作xml想必大家有所耳聞,接下來(lái)為大家以實(shí)例介紹下,感興趣的朋友可以參考下哈,2013-03-03PHP簡(jiǎn)單實(shí)現(xiàn)二維數(shù)組賦值與遍歷功能示例
這篇文章主要介紹了PHP簡(jiǎn)單實(shí)現(xiàn)二維數(shù)組賦值與遍歷功能,涉及php數(shù)組的簡(jiǎn)單賦值、遍歷、運(yùn)算、讀取等操作使用技巧,需要的朋友可以參考下2017-10-10php 使用redis鎖限制并發(fā)訪問(wèn)類示例
本篇文章主要介紹了php 使用redis鎖限制并發(fā)訪問(wèn)類,可以限制用戶請(qǐng)求,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2016-11-11PHP swoole的process模塊創(chuàng)建和使用子進(jìn)程操作示例
這篇文章主要介紹了PHP swoole的process模塊創(chuàng)建和使用子進(jìn)程操作,結(jié)合實(shí)例形式分析了swoole的進(jìn)程管理process模塊實(shí)現(xiàn)進(jìn)程間通信相關(guān)操作技巧,需要的朋友可以參考下2020-03-03PHP5.3連接Oracle客戶端及PDO_OCI模塊的安裝方法
這篇文章主要介紹了PHP5.3連接Oracle客戶端及PDO_OCI模塊的安裝方法,結(jié)合實(shí)例形式詳細(xì)分析了php5.3環(huán)境下PDO_OCI模塊的安裝方法,并給出了連接Oracle測(cè)試程序,需要的朋友可以參考下2016-05-05PHP實(shí)現(xiàn)駝峰樣式字符串(首字母大寫(xiě))轉(zhuǎn)換成下劃線樣式字符串的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)駝峰樣式字符串(首字母大寫(xiě))轉(zhuǎn)換成下劃線樣式字符串的方法,涉及php正則替換相關(guān)操作技巧,需要的朋友可以參考下2017-08-08