PHP中使用数组的rand数字

时间:2012-01-13 18:40:49

标签: php arrays zend-framework

我想为数组实现一个随机数,让我们看看我是否清楚自己:

我有

$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';

这会有效吗?任何人都有更好的想法,或者请帮助我找到解决方案吗?

由于

4 个答案:

答案 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>");
  }

?>