Уникальность случайных чисел в массиве

Denter

Новичок
Уникальность случайных чисел в массиве

Создал массив и заполнил его случайными числами в промежутке от 0 до 5. Как можно сделать чтобы эти числа были уникальными. Спасибо.

<?
for ($i=1;$i<6;$i++) {
$myArray[$i] = rand(0, 5);
echo $myArray[$i]. "<BR>";
}
?>
 

Tor

Новичок
а подумать?
проверять перед вставкой в массив, нет ли там уже такого

-~{}~ 25.07.05 15:13:

for ($i=1;$count($myArray)<6;$i++)
 

SelenIT

IT-лунатик :)
чисел 6, и элементов массива тоже 6?
Как вариант: [m]shuffle[/m]([m]range[/m](0,5))
 

amorfis

я стараюсь
а можно еще после того как ты заполнил массив без всяких проверок применить к нему (массиву) функцию array_unique, которая удалит все дубликаты.
 

amorfis

я стараюсь
Неизвестно. Но если надо создать массив обязательно из шести элементов, при чем эти элементы должны быть уникальны и из промежутка [0-5], то зачем парится:
PHP:
$myArray=array(0,1,2,3,4,5);
 

skynet80

rundesigner.com
Я так понимаю игру в кости пишет :). Исходников дофига чего ты паришься просто полазь в инете.
 

Denter

Новичок
Сколько элементов не суть хоть 100. 6 штук взял от балды. можно и не ограничивать на самом деле.
 

SelenIT

IT-лунатик :)
Denter
Уточни задачу. Если нужен набор чисел от 0 до n в случайном порядке, то вариант с перемешиванием диапазона, имхо - кратчайший путь к цели.
 

Denter

Новичок
Задача - заполнить массив случайными УНИКАЛЬНЫМИ числами от 0 до 9. Вот и все.
 

SelenIT

IT-лунатик :)
Боюсь, что заполнить массив из 100 элементов УНИКАЛЬНЫМИ числами от 0 до 9 невозможно.
 

Denter

Новичок
SelenIT Шутник :). 100 - это для примера. Пусть будет 5. Но числа должны быть уникальными!
 

Tor

Новичок
Denter
ты со своими "примерами" уже всем тут надоел
либо у тебя есть конкретная задача, которую ты решить не в состоянии, либо бай-бай
 

Denter

Новичок
Конкретная задача :) :
Заполнить массив случайными УНИКАЛЬНЫМИ числами от 0 до 9. Вот и все.
 

Denter

Новичок
Премного благодарен! ;)

-~{}~ 29.07.05 14:58:

Автор оригинала: m2k
$array = array();
for($i=0;$i < $n;$i++)
$array[] = $i;
shuffle($array);
А можно ли обойти shuffle($array); ?
Т.е. не использовать перемешивание.:rolleyes:
 

SelenIT

IT-лунатик :)
Denter
Можно, но в твоей задаче не нужно. А вот цикл обойти можно, тебе даже написали как :)
 
Сверху