У меня есть массив из 30 значений, и мне нужно извлечь из этого массива 3 разных случайных значения. Как я могу это сделать?
Выберите 3 различных случайных значения из массива
Ответ 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";
?>
Обратите внимание, что с 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)