随机化输出

发布于 2024-11-09 02:09:19 字数 106 浏览 3 评论 0 原文

我有一个输出项目详细信息的页面。数据存储在 db 中,我使用 foreach 在页面上回显它。目前,这些项目按照它们存储在我的表中的顺序显示。每次加载时随机化项目在页面上显示的顺序的最佳方法是什么?

I have a page where I output item details. The data is stored in db and I use foreach to echo it on the page. Currently the items appear in the order they are stored in my table. What is the best way to randomize the order the items appear on the page every time it loads?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

何以笙箫默 2024-11-16 02:09:36

我不会立即回显它,而是将数据存储在数组中,然后使用 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.

枯寂 2024-11-16 02:09:31

在 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.

小伙你站住 2024-11-16 02:09:28

bool 随机播放 (数组&$array )

此函数对数组进行打乱(随机化元素的顺序)。
成功则返回 TRUE,失败则返回 FALSE。

例子:

while ($row = mysql_fetch_row($result))
    {
    $set[] = $row;
    }

shuffle($set); // rows now in random order

foreach ($set as $row)
    {
    echo $row['column'];
    }

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:

while ($row = mysql_fetch_row($result))
    {
    $set[] = $row;
    }

shuffle($set); // rows now in random order

foreach ($set as $row)
    {
    echo $row['column'];
    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文