ホームページ php教程 php手册 php中通过数组进行高效随机抽取指定条记录的算法

php中通过数组进行高效随机抽取指定条记录的算法

Jun 06, 2016 pm 08:27 PM
配列

php使用数组array_rand()函数进行高效随机抽取指定条数的记录,可以随机抽取数据库中的记录,适合进行随机展示和抽奖程序

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=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) {
    $tuijian_array[] = $list[$key];
}
unset($case_list);
print_r($tuijian_array);
?>

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

foreach ループを使用して PHP 配列から重複要素を削除するにはどうすればよいですか? foreach ループを使用して PHP 配列から重複要素を削除するにはどうすればよいですか? Apr 27, 2024 am 11:33 AM

foreach ループを使用して PHP 配列から重複要素を削除するにはどうすればよいですか?

PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析 May 03, 2024 pm 09:03 PM

PHP 配列キー値の反転: さまざまな方法のパフォーマンス比較分析

PHP 配列の多次元ソートの実践: 単純なシナリオから複雑なシナリオまで PHP 配列の多次元ソートの実践: 単純なシナリオから複雑なシナリオまで Apr 29, 2024 pm 09:12 PM

PHP 配列の多次元ソートの実践: 単純なシナリオから複雑なシナリオまで

PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する May 01, 2024 pm 12:30 PM

PHP 配列ディープ コピーの技術: さまざまな方法を使用して完璧なコピーを実現する

データソートにおけるPHP配列グループ化機能の応用 データソートにおけるPHP配列グループ化機能の応用 May 04, 2024 pm 01:03 PM

データソートにおけるPHP配列グループ化機能の応用

PHP 配列のディープ コピーのベスト プラクティス: 効率的な方法を発見する PHP 配列のディープ コピーのベスト プラクティス: 効率的な方法を発見する Apr 30, 2024 pm 03:42 PM

PHP 配列のディープ コピーのベスト プラクティス: 効率的な方法を発見する

重複要素の検索における PHP 配列グループ化関数の役割 重複要素の検索における PHP 配列グループ化関数の役割 May 05, 2024 am 09:21 AM

重複要素の検索における PHP 配列グループ化関数の役割

PHP 配列のマージおよび重複排除アルゴリズム: 並列ソリューション PHP 配列のマージおよび重複排除アルゴリズム: 並列ソリューション Apr 18, 2024 pm 02:30 PM

PHP 配列のマージおよび重複排除アルゴリズム: 並列ソリューション

See all articles