php使用數組array_rand()函數進行高效隨機抽取指定條數的記錄,可以隨機抽取資料庫中的記錄,適合進行隨機展示和抽獎程序。
演算法主要是利用php的array_rand()函數,以下來看array_rand()函數的主要功能:
array_rand—從陣列中隨機取出一個或多個單元
mixed array_rand(array $input[,int $num_req] )
array_rand()在你想從陣列中取出一個或多個隨機的單元時相當有用。它接受input作為輸入數組和一個可選的參數num_req,指明了你想取出多少個單元 - 如果沒有指定,預設為 1。
如果你只取出一個,array_rand()傳回一個隨機單元的鍵名,否則就回傳一個包含隨機鍵名的陣列。這樣你就可以隨機從陣列中取出鍵名和值。
下面我們來看小範例:
複製程式碼 程式碼如下:
srand((float) microtime() * 10000000);
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
print $input[ $rand_keys[0]] . "n";
print $input[$rand_keys[1]] . "n";
?>
函數會隨機抽取$list數組中的記錄號,需要記錄內容只需要輸出即可。
下面看一段資料庫隨機抽取特定筆記錄的範例:
複製程式碼 程式碼如下:
$list = $DB->where("status=where("status= 1 and flag=1")->order('sort')->select();
unset($Case);
$count = count($list);
$rand_list=range( 0, $count-1);
$rand_list = array_rand($rand_list, 10);
$tuijian_array = array();
foreach ($rand_list as $key) {
] = $list[$key];
}
unset($case_list);
print_r($tuijian_array);
?>
http://www.bkjia.com/PHPjc/313637.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/313637.htmlTechArticlephp使用數組array_rand()函數進行高效隨機抽取指定條數的記錄,可以隨機抽取資料庫中的記錄,適合進行隨機展示和抽獎程序。 演算法主要是...