2014-09-10 2 views

ответ

1

array_rand($AllNums, 1); возвращает значение, а не массив, так что вам не придется добавлять [0] в $Rand = $AllNums[$RandNums[0]];

$AllNums = range(1, 2); 

$RandNums = array_rand($AllNums, 1); 

$Rand = $AllNums[$RandNums]; 
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 
3

Использование shuffle:

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

Это мой предпочтительный метод – Novocaine

+1

Всегда важно отметить, что она будет полностью изменить массив, хотя. – Sugar

0

manual page из array_rand указывает, что если вы получаете только одно значение с array_rand, оно возвращает одно значение , Он возвращает массив только в том случае, если вы пытаетесь получить больше значений (используя второй параметр)

0

вы можете использовать mt_rand

$RandNums = mt_rand(0, count($AllNums) - 1); 
$Rand = $AllSeets[$RandNums]; 
Смежные вопросы