Подтвердить что ты не робот

Выберите 3 различных случайных значения из массива

У меня есть массив из 30 значений, и мне нужно извлечь из этого массива 3 разных случайных значения. Как я могу это сделать?

4b9b3361

Ответ 1

Бесстыдно украдены из руководства PHP:

<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>

http://us2.php.net/array_rand

Обратите внимание, что с PHP 5.2.10 вам может понадобиться перетасовать (рандомизировать) ключи, которые возвращаются через shuffle($rand_keys), в противном случае они всегда будут в порядке (сначала наименьший индекс). То есть в приведенном выше примере вы можете получить "Нео, Тринити", но никогда "Тринити, Нео".

Если порядок случайных элементов не важен, то приведенный выше код достаточен.

Ответ 2

Я не уверен, зачем вообще использовать array_rand(), поскольку это просто дополнительный вызов функции, по-видимому, без причины. Просто shuffle() и срезайте первые три элемента:

shuffle($array);
print_r(array_slice($array, 0, 3));

Ответ 3

используйте shuffle($array), затем array_rand($array,3)