Как выбрать случайное значение из списка?

Asar

Новичок
Как выбрать случайное значение из списка?

Имеется массив. Как из него взять случайное значение? Или задать список значений в какой то функции и выбрать случайное там? Нашел только выборку из диапазона, а из конкретных значений не нашел...
 

Asar

Новичок
Да мож я и спрашивал, только никак не найду свое сообщение... Выкинули его что ли...

-~{}~ 10.06.05 15:16:

Насчет этой функции - пробовал, но немного не то у меня выходит. Не разобралси, видимо, щас расскажу, как делал...
crocodile2u
Твоя ссылка у меня не открывается, к сожалению, а то, может, я сам бы допер...
 

crocodile2u

http://vbolshov.org.ru
То же самое смотри в мануале в разделе "Array functions" ( в смысле, я надеюсь, у тебя имеется офлайновая версия мануала)
 

Asar

Новичок
Да, сейчас открылась.
Итак, у меня таблица с двумя столбцами - Id, Caption.
$Arr = mysql_fetch_assoc($Query) - где $Query выбирает все и вся из этой таблицы.
$rand = array_rand($Arr, 2);
в $rand[0] залегает 'Id', в $rand[1] 'Caption'. В $Arr[$rand[0]] - первое значения из соответсвующего поля $Arr.
Я все никак не возьму в толк, на каком этапе и что именно у меня выводится по рндэшке?
 

crocodile2u

http://vbolshov.org.ru
array_rand($Arr, 2); делает ровно столько, сколько ты ей говоришь делать - выбирает два случайных ключа из массива $Arr.

Подумай немного, и ты найдешь, как добиться нужного результата.

Впрочем, если тебе нужно всего лишь выбрать две случайных записи из таблицы, проще использовать SELECT .... ORDER BY RAND() LIMIT 2
 

Asar

Новичок
Брр... Чушь какую то я написал... В общем, никак не догоню, как вызвать случайное значение $Arr['Id'], к примеру?

-~{}~ 10.06.05 15:40:

С помощью SQLзапроса все проще вышло, действительно...

-~{}~ 10.06.05 15:42:

Гм... А если делать 3 выборки подряд, например, и хочется, чтобы результаты не пересекались - т. е. если уже один раз "33" выбиралось, то в следующий раз такого не получалось - кроме ручного метода "типа if" имеются более продвинутые?
 

Asar

Новичок
Был так рад, что наконец то чего то случайно выбирается, что забыл о прочих значениях в массиве, кроме первого... ))
 
Сверху