随机化输出

时间:2011-05-21 19:11:08

标签: php mysql lamp

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

3 个答案:

答案 0 :(得分:3)

bool shuffle ( array &$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'];
    }

答案 1 :(得分:3)

在MySQL中,您可以执行ORDER BY RAND() LIMIT n

但是对于大型表格我可能会变慢,因为它需要在返回顶部 n 结果之前对整个表进行排序。

添加WHERE RAND() < 0.1会加快查询速度,因为它只需要排序约10%的表。

答案 2 :(得分:0)

我不是立即回应它,而是将数据存储在一个数组中,然后使用array_rand()随机化数组的内容。使用此函数的第二个参数,您可以指定要随机选择的项目数。