小弟要做一考试系统,要从试题表exam_stb中,随机出n道试题(不能重复),求一函数能实现
如:function f($m,$n){
...
}
$m=array("1","3","2","8");
$n=3;
$t=f($m,$n);希望$t 为array("1","2","3")或 array("1","2","8") 等等望哪位大哥能帮帮小弟啥。
如:function f($m,$n){
...
}
$m=array("1","3","2","8");
$n=3;
$t=f($m,$n);希望$t 为array("1","2","3")或 array("1","2","8") 等等望哪位大哥能帮帮小弟啥。
如果表记录数很大,那么建议查处最小ID和最大ID,随机挑选出N个ID,然后用 in(...)查询,当然,有断记录可以再做判断。
$m=array("1","3","2","8");
$n=3;
$t=f($m,$n);
function f($m,$n)
{
if($n > count($m)) return $m;
else
{
shuffle($m);
return array_slice($m,0,$n);
}
}
print_r($t);
array_slice() 返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。