我想为数组实现一个随机数,让我们看看我是否清楚自己:
我有
$array[0] = 'Hello';
$array[1] = 'Good Morning';
$array[2] = 'Good Afternoon';
$array[3] = 'Good Night';
$array[4] = 'Bye';
我有这种方式,因为这是我的老板想要的方式,而不是数组(1 =>'Hello'等等。无论如何我想要的是在数组中创建一个随机数,$ array [随机数],使用功能rand('0','99')作为例子。
也许这样做:
$rand1 = rand('0','99');
$array['$rand1'] = 'Hello';
这会有效吗?任何人都有更好的想法,或者请帮助我找到解决方案吗?
由于
答案 0 :(得分:3)
这会有用吗?
没有。随机!=独特。如果多次生成相同的数字,则将覆盖现有的数组元素。
您尚未说明为什么要这样做,但如果您正在寻找阵列的随机订单,则可以使用shuffle。
如果您需要从数组中获取随机元素,可以使用array_rand。
答案 1 :(得分:1)
我认为您想要做的事情可以简化如下:
// this is the same as creating an array: $array[0] = 'Hello'; $array[1] = 'Good Morning';
$array = array('Hello', 'Good Morning', ...etc...);
// array_rand will give you a random "key" from the array
echo $array[array_rand($array, 1)];
有助于解析此问题的一些资源:array_rand()
和PHP's page on arrays。
答案 2 :(得分:0)
您可以使用array_rand
..假设您使用数组的长度作为最大值(并且您知道最小值),您的技术将起到相似的作用。
答案 3 :(得分:0)
不要去rand(0,99),因为你的错误会因为你的数组长度只有5而来。
试试这个。
<?php
$array[0] = 'Hello';
$array[1] = 'Good Morning';
$array[2] = 'Good Afternoon';
$array[3] = 'Good Night';
$array[4] = 'Bye';
shuffle($array);
for($i=0;$i<count($array);$i++)
{
echo($array[$i]);
echo("<br>");
}
?>