我想做的是显示 5 个随机图像,其中包含一定数量的文本,而不重复。图像和文本的链接将存储在数据库中。我遇到的问题是我需要将每个 ID 值放入单个 PHP 数组中才能洗牌 ID 并选择随机 5,但我一直无法将它们组合成一个数组,如果我有 3 行,我最终会得到 3 个数组。
下面是 ID 为 1,2,4 的 3 行失败代码的示例:
function getAll () {
$query = mysql_query("SELECT * FROM ads") or die(mysql_error());
$myarray = array();
while ($numbers = mysql_fetch_array($query)){
$arr = $numbers['ID'].",";
print_r (explode(",", $arr));
}
};
这是输出:
Array ( [0] => 1 [1] => ) Array ( [0] => 2 [1] => ) Array ( [0] => 4 [1] => )
这是所需的输出:
Array ( [0] => 1 [1] => 2 [2] => 4)
猜这是一个菜鸟问题,但我已经尽力寻找解决方案并失败了。
简单的解决方案:在MySQL查询中使用ORDER BY RAND()
直接打乱结果:
SELECT * FROM ads ORDER BY RAND() LIMIT 5
我认为您应该查看 Alp 的解决方案,但要直接回答您的问题 - 将其放入您的while
循环中。
array_push($arr,$numbers['Id']);
但首先在循环之前声明变量:
$arr = array();