2010-11-22 5 views
7

У меня есть простой массив, как это:Простой PHP случайный массив

$input = array('Line1', 'Line2', 'Line3'); 

И хочу повторить одно из значений случайным образом. Я сделал это раньше, но не могу вспомнить, как я это сделал, и все примеры array_rand кажутся более сложными, чем то, что мне нужно.

Может ли любая помощь? Thanks

ответ

18
echo $input[array_rand($input)]; 

array_rand() возвращает ключ, так что мы должны подключить его обратно в $input, чтобы получить значение.

+0

Как мы показываем только один результат, случайный? – thevoipman

4

Комплекс? Мы на одном manual page?

$rand_key = array_rand($input, 1); 
+1

Нет примеров на php.net были сверху, потому что я хотел, чтобы все, что я хотел, было просто. – Cameron

+0

@Cameron, который предназначен: это ключ массива. Используйте '$ input [$ rand_key]' для доступа к элементу –

+0

Если * 0 * - выбранный случайный ключ, это выбранная случайная клавиша. Что с этим связано? – KingCrunch

2

array_rand поможет вам выбрать случайный ключ массива. Оттуда вы можете получить стоимость.

$randKey = array_rand($input); 
echo $input[$randKey]; 
2

Только одна функция: array_rand().

echo $input[array_rand($input,1)]; 
+0

Приведенный выше пример waiwai933 не имеет 1, но выводит то же, что и ваш код. что делает 1? – Cameron

+0

@Cameron заглянуть в руководство. 'Если вы выбираете только одну запись, array_rand() возвращает ключ для случайной записи. В противном случае он возвращает массив ключей для случайных записей. Это делается для того, чтобы вы могли выбирать случайные ключи, а также значения из массива. ' –

+0

* Второй аргумент * 1 * является значением по умолчанию, поэтому его можно опустить. – KingCrunch

3

Вы можете использовать shuffle(), а затем просто выбрать первый элемент.

shuffle($input); 
echo $input[0]; 

Но я бы пошел с методом array_rand().

Смежные вопросы