thinkphp5随机抽取数据的方法
/**
* 随机获取数据
* @param string $num 抽取条数
* @param string $table 表名
* @param string $where 查询条件
* @return array
*/
function tt_random_data($num,$table,$where=[])
{
$pk = Db::name($table)->getPK();//获取主键
$countcus = Db::name($table)->where($where)->field($pk)->select();//查询数据
$con = '';
$qu = '';
foreach($countcus as $v=>$val){
$con.= $val[$pk].'|';
}
$array = explode("|",$con);
$countnum = count($array)-1;
for($i = 0;$i <= $num;$i++){
$sunum = mt_rand(0,$countnum);
$qu.= $array[$sunum].',';
}
$list = Db::name($table)->where($pk,'in',$qu)->select();
return $list;
}