У меня в массиве 6 значений, мне нужно вернуть 4 случайных значения из массива, но все не должно быть равным.
Пример:
Если у меня есть массив (6 значений) 1, 2, 3, 4, 5, 6
Мне нужно получить 4 случайных значения от него, например 3, 1, 4, 2
, Сейчас вернемся к примеру: 2,2,3,2
Вот код:
$array= array(1, 2, 3, 4, 5, 6);
for ($i = 0; $i < 4; $i++) {
$k = array_rand($array);
$random_element = $array[$k];
echo $random_element;
}
Вы можете shuffle()
массив, а затем array_slice()
некоторые элементы из него:
shuffle($array);
$random_elements = array_slice($array, 0, 4); // with 4 the number of random values
Если вы хотите сохранить свою старую функциональность с echo
просто вставьте unset
в вашу петлю
$array= array(1, 2, 3, 4, 5, 6);
for ($i = 0; $i < 4; $i++) {
$k = array_rand($array);
$random_element = $array[$k];
unset($array[$k]);
echo $random_element;
}
Но мне больше нравится решение bwoebi.
$array= array(1, 2, 3, 4, 5, 6);
for ($i = 0; $i < 4; $i++) {
$k = array_rand($array);
$random_element = $array[$k];
unset($array[$k]);
echo $random_element;
}