$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
?
答案 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];