Выборка рандомно из массива

  • Автор темы Автор темы Fakir
  • Дата начала Дата начала

Fakir

в работе над собой
Выборка рандомно из массива

Есть массив, в нем минимум 5 элементов максимум ~

Необходимо выбрать 5 записей массива, но не один не должен быть повторным, т.е. все разные.

Как можно решить проблему?

Заранее благодарен.
 
примерно так:

PHP:
$n = 5;
$keys = array();

while(!$n)
{
 $key = rand(0 , ...);
 if(!in_array($arr[$key] , $keys))
{
echo $arr[$key].'<br>';
$n--;
$keys[] = $key;
}
}
 
Tony, хммм... спасибо вот это то что надо... Я ни не знал shuffle().
 
там нигде не сказано, что результирующий набор содержит уникальные ключи.
а с shuffle только так и получится.
 
Ан, нет, Tony не подошло. При наличии только 5-ти эл-тов в массиве, функция shuffle() как то не так работает как надо.

Пример:
PHP:
$TmpArray = Array (
    [0] => 11
    [1] => 12
    [2] => 13
    [3] => 14
    [4] => 15
);

shuffle($TmpArray);

for ($i=0; $i<4; $i++) {
  echo $TmpArray[$i];
}

И он выдает такое:

11
12
12
13
15
 
ruslan, array_rand не подходит потому как он может повторять едл-ты массива, а мне это не надо.
 
void shuffle ( array array)
This function shuffles (randomizes the order of the elements in) an array. You must use srand() to seed this function.
 
Сверху