Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Random с исключениями
 
 автор: simplyv   (29.06.2011 в 12:17)   письмо автору
 
 

Возможно ли сделать Random с исключениями?
Например:
$rv=rand (0,1000);

Будет выдавать числа от 0 до 1000. Можно сделать, чтобы выдавало то же, только, не выдавало числа 150,157,200 .....?

  Ответить  
 
 автор: Valick   (29.06.2011 в 12:25)   письмо автору
 
   для: simplyv   (29.06.2011 в 12:17)
 

нет
__
засовывайте рандом в цикл и проверяйте пока не даст результат отличный от вашего черного списка
можно составить массив исключений и использовать функции работы с массивами
например такие как in_array()
__
кстати один из случаев где уместно применить цикл do while()

<?php
$arr
=array(150,157.200);
do
$rv=rand (0,1000);
while(
in_array($rv,$arr));
echo 
$rv;
?>

попробуйте, вдруг работает)

<?php
$arr
=array(150,157.200);
while(
in_array($rv=rand (0,1000),$arr)){}
echo 
$rv;
?>

а может и так заработает))

  Ответить  
 
 автор: Valick   (29.06.2011 в 12:56)   письмо автору
 
   для: Valick   (29.06.2011 в 12:25)
 

проверил, поправил, работает :)
__
только там запятая вместо точки
$arr=array(150,157,200); 

  Ответить  
 
 автор: simplyv   (29.06.2011 в 17:19)   письмо автору
 
   для: Valick   (29.06.2011 в 12:56)
 

Спасибо.
Поставил, все работает. Имею ввиду вариант с while

  Ответить  
 
 автор: Гость   (29.06.2011 в 12:28)   письмо автору
 
   для: simplyv   (29.06.2011 в 12:17)
 

проверяйте полученное число и если совпадает - генерируйте по новой.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования