Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужно вывести случайный набор строк 
:(
    Опции темы
bork
Дата 3.9.2012, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 4.1.2008

Репутация: нет
Всего: нет



Есть, например, 10 строк с текстом (будут записаны в этом же php, можно каждую записать в отдельную переменную)
Нужно вывести 5 случайных строк без повторов при каждом обновлении страницы.
PM MAIL   Вверх
ksnk
Дата 3.9.2012, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



Ну и в чем дело? 
Помешаем все строки в массив.
Сочиняем 5 чисел. Первое rand(10), второе rand(9), ... пятое rand(6).
Для каждого числа берем из массива по числу-индексу и ставим на его место последний элемент массива. и так далее все 5 раз.
Profit!


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
bork
Дата 3.9.2012, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 98
Регистрация: 4.1.2008

Репутация: нет
Всего: нет



Если не сложно, скиньте пример.
PM MAIL   Вверх
s1lver
  Дата 5.9.2012, 07:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Цитата(bork @ 3.9.2012,  23:04)
Если не сложно, скиньте пример.

Как насчет этого?


Код

<?
$mass = array("Строка1" =>1,
                "Строка2"=>2,
                "Строка3"=>3,
                "Строка4"=>4,
                "Строка5"=>5,
                "Строка6"=>6,
                "Строка7"=>7,
                "Строка8"=>8,
                "Строка9"=>9,
                "Строка10"=>10
            );
      
      $m1=rand(0,10);
      $m2=rand(0,9);
      $m3=rand(0,8);
      $m4=rand(0,7);
      $m5=rand(0,6);
      
      echo array_search($m1,$mass)."<br/>";
      echo array_search($m2,$mass)."<br/>";
      echo array_search($m3,$mass)."<br/>";
      echo array_search($m4,$mass)."<br/>";
      echo array_search($m5,$mass);
?>



Это сообщение отредактировал(а) s1lver - 5.9.2012, 07:30


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
Gold Dragon
Дата 5.9.2012, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Призрачный
****


Профиль
Группа: Экс. модератор
Сообщений: 6753
Регистрация: 1.3.2004
Где: Россия, Тамбов

Репутация: 10
Всего: 71



а если строки в базе данных то вообще никаких проблем с выборкой нет smile


--------------------
Нельзя жить в прошлом, оно уже прошло.
Нельзя жить в будущем, оно ещё не наступило.
Нужно жить в настоящем, помня прошлое и думая о будущем!
PM MAIL WWW ICQ   Вверх
s1lver
Дата 5.9.2012, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Хотя, скорее всего, в моем примере повторения будут...

Это сообщение отредактировал(а) s1lver - 5.9.2012, 07:46


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
ksnk
Дата 5.9.2012, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 96
Всего: 386



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

$mass = array("Строка1",
                "Строка2",
                "Строка3",
                "Строка4",
                "Строка5",
                "Строка6",
                "Строка7",
                "Строка8",
                "Строка9",
                "Строка10"
            );

function randStr(&$arr,$max){
   $idx=rand(0,$max);
   $result=$arr[$idx];
   if ($idx!=$max) $arr[$idx]=$arr[$max];
   return $result;
}

echo randStr($mass ,9)."<br/>";
echo randStr($mass ,8)."<br/>";
echo randStr($mass ,7)."<br/>";
echo randStr($mass ,6)."<br/>";
echo randStr($mass ,5)."<br/>";



--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
s1lver
Дата 5.9.2012, 08:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 580
Регистрация: 14.12.2007
Где: Россия

Репутация: нет
Всего: нет



Цитата

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


Я вообще не то написал... smile 



 smile 


--------------------
Я собрался жить вечно - пока все идет нормально!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0486 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.