我有一个输出项目详细信息的页面。数据存储在db中,我使用foreach在页面上回显它。目前,这些项目按照它们存储在我的表格中的顺序显示。每次加载时项目在页面上显示的顺序随机化的最佳方法是什么?
答案 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()随机化数组的内容。使用此函数的第二个参数,您可以指定要随机选择的项目数。