直接使用while循環(huán)來(lái)處理,循環(huán)使用隨機(jī)函數(shù)mt_rand,將隨機(jī)數(shù)存入一個(gè)數(shù)組中,作為判斷數(shù)據(jù)是否重復(fù)的依據(jù)(in_array);使用glob函數(shù)來(lái)判斷new目錄下的文章篇數(shù),作為生成隨機(jī)數(shù)的最大值;整體代碼如下:
十余年的太和網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開(kāi)發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣的優(yōu)勢(shì)是能夠根據(jù)用戶(hù)設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整太和建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無(wú)論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)從事“太和網(wǎng)站設(shè)計(jì)”,“太和網(wǎng)站推廣”以來(lái),每個(gè)客戶(hù)項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。
執(zhí)行后的效果:
代碼操作:
?php
//獲取文件夾下html的數(shù)量
$max_num?=?glob("xxx/new/*.html");
$num?=?0;
$rand_num?=?[];
$result_arr?=?[];
while($num??100){
$tample_num?=?mt_rand(1,$max_num);
if(!in_array($tample_num,$rand_num)){
$rand_num[]?=?$tample_num;
$result_arr[]?=?"".$tample_num.".html";
$num++;
}
}
foreach($result_arr?as?$v){
echo?$v."hr/";
}
echo?"數(shù)組的大小".?count($result_arr);
array_rand()
在你想從數(shù)組中取出一個(gè)或多個(gè)隨機(jī)的單元時(shí)相當(dāng)有用。它接受
input
作為輸入數(shù)組和一個(gè)可選的參數(shù)
num_req,指明了你想取出多少個(gè)單元
-
如果沒(méi)有指定,默認(rèn)為
1。
如果你只取出一個(gè),array_rand()
返回一個(gè)隨機(jī)單元的鍵名,否則就返回一個(gè)包含隨機(jī)鍵名的數(shù)組。這樣你就可以隨機(jī)從數(shù)組中取出鍵名和值。
主要是用array_rand()方法
直接用select * from student order by rand() limit 5不是一個(gè)很好的習(xí)慣,這個(gè)要考慮到數(shù)據(jù)庫(kù)的大小問(wèn)題,比如,數(shù)據(jù)量為10W以上,這樣查詢(xún)的效率是非常低的,資源也消耗挺多!你可以考慮在php與mysql結(jié)合來(lái)實(shí)現(xiàn),比如:先用mysql 的count()計(jì)算出student的總條數(shù)$sum_num,賦值到php中的變量中,后在php中更具這個(gè)總條數(shù)進(jìn)行生成隨機(jī)數(shù)(這里涉及到你的5條數(shù)據(jù)是否為連續(xù)的5條隨機(jī)數(shù),還是打亂的隨機(jī)五條),這里如果生成連續(xù)的數(shù)據(jù)就只需要生成一個(gè)小于$sum_num-5的隨機(jī)數(shù)就可以了!根據(jù)這個(gè)隨機(jī)數(shù)進(jìn)行l(wèi)imit取出5條就可以;如果這里需要生成打亂的隨機(jī)數(shù),就需要生成5個(gè)不相同的并且小于$sum_num隨機(jī)數(shù),最后根據(jù)這些隨機(jī)數(shù)在數(shù)據(jù)庫(kù)中查詢(xún),第一種情況用到limit 隨機(jī)數(shù),5;;第二種情況用到in(隨機(jī)數(shù)1,隨機(jī)數(shù)2,隨機(jī)數(shù)3,隨機(jī)數(shù)4,隨機(jī)數(shù)5);在數(shù)據(jù)量大的情況下,這樣的效率和資源消耗的情況下都要比select * from student order by rand() limit 5好得多,當(dāng)然如果數(shù)據(jù)量不多的話(huà)就用這個(gè)也可以!只是給你普及個(gè)知識(shí)!祝你學(xué)習(xí)愉快!(這里暫且認(rèn)為你會(huì)用php生成隨機(jī)數(shù)并且這里的php生成的隨機(jī)數(shù)必須為大于0的整型哦,不會(huì)的話(huà)可以先百度、google,最后可以繼續(xù)給我留言)!
這里因?yàn)槟愕膇d會(huì)有缺失所以有的方法不適用!就不一一列舉了!