получить случайное значение из массива PHP, но сделать его уникальным

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

Например, если я выбираю значение 4 раза из массива из 4 элементов,выбранное значение должно быть случайным, но каждый раз другим.

Если я выберу его 10 раз из одного и того же массива из 4 элементов, то очевидно, что некоторые значения будут дублироваться.

У меня это есть прямо сейчас, но я по-прежнему получаются повторяющиеся значения, даже если цикл выполняется 4 раза:

$arr = $arr_history = ('abc', 'def', 'xyz', 'qqq');

for($i = 1; $i < 5; $i++){
  if(empty($arr_history)) $arr_history = $arr; 
  $selected = $arr_history[array_rand($arr_history, 1)];  
  unset($arr_history[$selected]); 
  // do something with $selected here...
}
9
задан Alex 24 June 2011 в 17:25
поделиться