重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
直接使用while循環來處理,循環使用隨機函數mt_rand,將隨機數存入一個數組中,作為判斷數據是否重復的依據(in_array);使用glob函數來判斷new目錄下的文章篇數,作為生成隨機數的最大值;整體代碼如下:
十余年的太和網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。網絡營銷推廣的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整太和建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。創新互聯從事“太和網站設計”,“太和網站推廣”以來,每個客戶項目都認真落實執行。
執行后的效果:
代碼操作:
?php
//獲取文件夾下html的數量
$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?"數組的大小".?count($result_arr);
array_rand()
在你想從數組中取出一個或多個隨機的單元時相當有用。它接受
input
作為輸入數組和一個可選的參數
num_req,指明了你想取出多少個單元
-
如果沒有指定,默認為
1。
如果你只取出一個,array_rand()
返回一個隨機單元的鍵名,否則就返回一個包含隨機鍵名的數組。這樣你就可以隨機從數組中取出鍵名和值。
主要是用array_rand()方法
直接用select * from student order by rand() limit 5不是一個很好的習慣,這個要考慮到數據庫的大小問題,比如,數據量為10W以上,這樣查詢的效率是非常低的,資源也消耗挺多!你可以考慮在php與mysql結合來實現,比如:先用mysql 的count()計算出student的總條數$sum_num,賦值到php中的變量中,后在php中更具這個總條數進行生成隨機數(這里涉及到你的5條數據是否為連續的5條隨機數,還是打亂的隨機五條),這里如果生成連續的數據就只需要生成一個小于$sum_num-5的隨機數就可以了!根據這個隨機數進行limit取出5條就可以;如果這里需要生成打亂的隨機數,就需要生成5個不相同的并且小于$sum_num隨機數,最后根據這些隨機數在數據庫中查詢,第一種情況用到limit 隨機數,5;;第二種情況用到in(隨機數1,隨機數2,隨機數3,隨機數4,隨機數5);在數據量大的情況下,這樣的效率和資源消耗的情況下都要比select * from student order by rand() limit 5好得多,當然如果數據量不多的話就用這個也可以!只是給你普及個知識!祝你學習愉快!(這里暫且認為你會用php生成隨機數并且這里的php生成的隨機數必須為大于0的整型哦,不會的話可以先百度、google,最后可以繼續給我留言)!
這里因為你的id會有缺失所以有的方法不適用!就不一一列舉了!