private function random_data($num, $table, $where = [], $field = '*', $order = [], $pk = 'id') {
$countcus = Db::name($table)
->field($pk)
->where($where)
->select();
if (count($countcus) == 0) {
return [];
}
$arr = [];
$flag = 0;
$countnum = count($countcus);
if ($countnum < $num) {
$num = $countnum;
}
for ($i = 0; $i < $num; $i++) {
$randnum = $countcus[mt_rand(0, $countnum - 1)][$pk];
if ($flag != $randnum) {
if (!in_array($randnum, $arr)) {
$arr[] = $randnum;
$flag = $randnum;
} else {
$i--;
}
}else{
$i--;
}
}
$list = Db::name($table)
->field($field)
->where($pk, 'in', $arr)
->order($order)
->select();
return $list;
}