ARRAY_RAND Значения повторяються

Статус
В этой теме нельзя размещать новые ответы.

Toxic_Cat

Новичок
ARRAY_RAND Значения повторяються

Скрипт состоит из большого количества циклов.
Имеються большие массивы (по 4000 значений).

$new_array = $xx_array[array_rand($xx_array)];

В цикле выдает большое количество повторов.
Пробовал на хостинге, то-же самое...

Как сделать, чтобы значения не повторялись по 2-5 раз?
Вот массив чисел, выдаваемых:
2555
6783
1240
11334
4597
7227
6690
11334
7227
4496
2555
6903
4496
2555
1240
11229
7227
6690
11334
7227
2555
6903

и т.д.
И это рэндом в массиве от 1 - 11225 чисел...

Подскажите, как избавиться от постоянных "повторений"?
 
Автор оригинала: donflash
[m]array_unique[/m]?
Нет, так как функция не "помнит" предидущих значений.
Мне нужно сгенерировать 50 квадратов с разным цветом фона и разным размером...

Функция вызываеться в цикле, в самой функции есть цифлы и в итоге все повторяеться 3-5 раз!
 
Toxic_Cat
А где ранее упоминалось, что "15000 значений массива, по 100 символов в каждом"?
 
Toxic_Cat
Я не смотрел исходники, но думаю shuffle просто назначает случайные keys, а потом делает сортировку. Можешь попробовать делать то же с помощью rand, isset а затем sort и посмотреть что быстрее ;)
 
Автор оригинала: kruglov
Toxic_Cat
А где ранее упоминалось, что "15000 значений массива, по 100 символов в каждом"?
Да, не упоминалось...

В общем shuffle использовать удобно.
Лишь бы memory_limit не привышать.

P.S. еще не тестировал, но возможно, что функция rand(x,y); будет так-же давать "повторяющиеся" значения.
 
Toxic_Cat
Любые генераторы псевдослучайных последовательностей должны давать повторы. Иначе они просто не будут случайными. Ибо вероятность выпадения случайного числа не зависит от предыстории.
 
о, блин. очередной гоблин.
решил поднять тему и поделиться сокровенными знаниями.

ну, раз уж подняли, то и я встряну

Toxic_Cat
И это рэндом в массиве от 1 - 11225 чисел...
непонятно, что не устраивает.
по-моему, отличный рэндом.
 
Автор оригинала: Фанат
решил поднять тему и поделиться сокровенными знаниями.

ну, раз уж подняли, то и я встряну

Toxic_Cat

непонятно, что не устраивает.
по-моему, отличный рэндом.
Читать научись.
Я проблему не просто так поднял...

Сгенерировал 20 квадратов, уникальных всего 2, остальные совпадают как две капли (цвет, линии внутри, текст), разница лишь в размерах...
Хотя функция каждый раз берет Рэндомные значения всех значений.
(три параметра цвета RGB, координаты линий, координаты изображения, координаты текста)

о, блин. очередной гоблин.
Я не такой как ты ;)

Сейчас пользуюсь shuffle и доволен.
 
о, блин. очередной гоблин.
Я не такой как ты
хы. вообще-то это было не про вас.
но вы, конечно, молодец, не растерялись и нахамили...
Сейчас пользуюсь shuffle и доволен
если из 1500 значений нужно выбрать 20 - у [m]array_rand[/m] есть второй параметр.
ну и ещё под сомнение можно поставить целесообразность генерирования/загрузки таких гигантских массивов.
так что хвалиться не стоит.
 
Автор оригинала: hermit_refined
хы. вообще-то это было не про вас.
но вы молодец, не растерялись и нахамили...
Я конечно извиняюсь. Но так и не понял к кому Фанат обращаеться :)

если из 1500 значений нужно выбрать 20 - у [m]array_rand[/m] есть второй параметр.
ну и ещё под сомнение можно поставить целесообразность генерирования/загрузки таких гигантских массивов.
так что хвалится тоже не стоит.
Нет, функция каждый раз выбирает лишь одно РЭНДОМНОЕ значение...

Позже поэксперементирую с Вашим методом (по поводу array_rand).

P.S. в каждом массиве данных на 100-300кб по объёму примерно. Нет возможности избавиться от них либо как-то уменьшить объем .
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху