Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 随机化我的数组元素_Php_Mysql - Fatal编程技术网

Php 随机化我的数组元素

Php 随机化我的数组元素,php,mysql,Php,Mysql,如何随机化数组元素并将要显示的项目数限制为5 我的代码是: while($row = mysql_fetch_assoc($result)) { $new_array[] = $row; } echo '<pre>'; print_r(($new_array)); while($row=mysql\u fetch\u assoc($result)) { $new_array[]=$row; } 回声';打印r($new_数组)); shuffle将随机化数组

如何随机化数组元素并将要显示的项目数限制为5

我的代码是:

while($row = mysql_fetch_assoc($result))
{   
  $new_array[] = $row; 
}
  echo '<pre>'; print_r(($new_array));
while($row=mysql\u fetch\u assoc($result))
{   
$new_array[]=$row;
}
回声';打印r($new_数组));
shuffle
将随机化数组,然后从0开始一个指针,并在foreach循环中递增,如果指针大于4,则中断foreach循环

作为另一种解决方案,您可以使用for循环

shuffle($array);
对于($i=0;$i<5;$i++){
echo$array[$i];
}
还有一个限制的解决方案,因为您是通过查询提取数据库的数组,所以可以通过在查询末尾添加
limit 5
来限制所选数字返回的行数。

最简单的解决方案

array\u rand($array,5)


使用
shuffle
随机分组,并从
0
循环到
5
。简单的谷歌会帮你解决这个问题。发布你的全部代码,由于您是从mysql源代码中提取的,所以在查询
ORDER BY
字段`RAND` type thing中随机化结果集,您也可以使用
LIMIT
来限制返回的结果量,即:
LIMIT 0,5
将只提取5个结果这与您之前的问题有什么不同?嗯。阵列随机数($新阵列,5);
shuffle($array);
$pointer = 0;
foreach($array as $value) {
    if($pointer > 4) break;
    echo $value;
    $pointer++
}
shuffle($array);
for($i = 0; $i < 5; $i++) {
    echo $array[$i];
}