我正在研究MCQ模块,我需要从我的数据库中获取随机问题.问题是我似乎得到了重复.
听起来你想要改变问题,而不是随机访问它们.所以你的算法会是这样的.
获取要显示的所有问题(或问题键).
洗他们
以洗牌顺序检索/显示它们
洗牌退房:Fisher-Yates洗牌算法
如果您从数据库中获取它们,请使用SQL来完成您的工作.例如,提取20个随机问题(不重复):
SELECT * FROM questions ORDER BY RAND() LIMIT 20