PHP - 如何获取数组中的随机元素?

时间:2014-09-10 08:52:55

标签: php arrays

$AllNums = array();
//array is { [0]=> string(1) "2" [1]=> string(1) "1" };

$RandNums = array_rand($AllNums, 1);
// var_dump($RandNums) show - int(0)

$Rand = $AllNums[$RandNums[0]];

echo 'Rand = '.$Rand在展示Rand =上打印。

请告诉我为什么我们无法获得$Rand

6 个答案:

答案 0 :(得分:3)

使用shuffle

$AllNums = array();
shuffle($AllNUms)
$Rand = $AllNums[0];

答案 1 :(得分:1)

你错了。应该是:

$AllNums = array('1', '2');
$RandNums = array_rand($AllNums, 1); // this return an int() which can be used as an index
$Rand = $AllNums[$RandNums]; // no need to put `[0]`
echo $Rand;
// Actually no need to explicitly put 1, since its default it 1

答案 2 :(得分:1)

array_rand($AllNums, 1);会返回一个值,而不是数组,因此您无需在[0]中添加$Rand = $AllNums[$RandNums[0]];

$AllNums = range(1, 2);

$RandNums = array_rand($AllNums, 1);

$Rand = $AllNums[$RandNums];

答案 3 :(得分:0)

array_rand的{​​{3}}指定如果您只使用array_rand获得一个值,则返回单个值。如果您尝试获取更多值(使用第二个参数)

,它只返回一个数组

答案 4 :(得分:0)

echo $ AllNums [array_rand($ AllNums)];

使用array_rand() http://php.net/array_rand

答案 5 :(得分:0)

您可以使用 mt_rand

$RandNums = mt_rand(0, count($AllNums) - 1);
$Rand = $AllSeets[$RandNums];