随机化输出
我有一个输出项目详细信息的页面。数据存储在 db 中,我使用 foreach 在页面上回显它。目前,这些项目按照它们存储在我的表中的顺序显示。每次加载时随机化项目在页面上显示的顺序的最佳方法是什么?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我有一个输出项目详细信息的页面。数据存储在 db 中,我使用 foreach 在页面上回显它。目前,这些项目按照它们存储在我的表中的顺序显示。每次加载时随机化项目在页面上显示的顺序的最佳方法是什么?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
我不会立即回显它,而是将数据存储在数组中,然后使用 array_rand()。使用此函数的第二个参数,您可以指定要随机选择的项目数。
Instead of echoing it right away, I'd store the data in an array, and then randomize the content of the array using array_rand(). With the second argument of this function, you can specify how many items you want to randomly pick.
在 MySQL 中,您可以执行 ORDER BY RAND() LIMIT n
但对于大型表,我可能会变慢,因为它需要在返回顶部 n 结果。
添加
WHERE RAND() < 0.1
将加快查询速度,因为它只需要对表的约 10% 进行排序。In MySQL you can do a
ORDER BY RAND() LIMIT n
But i can become slow on for large tables, because it will need to sort the entire table before returning the top n results.
Adding a
WHERE RAND() < 0.1
will speed up the query because it wil only need to sort ~10% of the table.bool 随机播放 (数组&$array )
此函数对数组进行打乱(随机化元素的顺序)。
成功则返回 TRUE,失败则返回 FALSE。
例子:
bool shuffle ( array &$array )
This function shuffles (randomizes the order of the elements in) an array.
Returns TRUE on success or FALSE on failure.
Example: