首頁 >後端開發 >php教程 >php中透過陣列進行高效率隨機抽取指定筆記錄的演算法_PHP教程

php中透過陣列進行高效率隨機抽取指定筆記錄的演算法_PHP教程

WBOY
WBOY原創
2016-07-21 16:12:371417瀏覽

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);
?>

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/313637.htmlTechArticlephp使用數組array_rand()函數進行高效隨機抽取指定條數的記錄,可以隨機抽取資料庫中的記錄,適合進行隨機展示和抽獎程序。 演算法主要是...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn