[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: rand который не повторяется
WebClass
Ну собственно как сделать, чтобы функция rand() не повторялось?
Спасибо



Спустя 9 минут, 37 секунд (9.05.2010 - 19:59) andyp написал(а):
Нужно перед использованием rand инициализировать генератор случайных чисел с помощью srand().

А еще есть более лучшая функция для генерации случайных чисел mt_rand(). Соответственно для нее есть mt_srand().

Но начиная с PHP 4.2.0 эта инициализация и так должна делаться автоматически.

Спустя 4 минуты, 19 секунд (9.05.2010 - 20:04) Raito-kun написал(а):


$total = 5;
$min = 1;
$max = 5;

$rand = array();

while (count($rand) < $total)
{
$r = mt_rand($min,$max);

if (!in_array($r,$rand))
{
$rand[] = $r;
}
}


print_r($rand);




$total-количество генерируемых чисел.

Спустя 46 минут, 45 секунд (9.05.2010 - 20:51) WebClass написал(а):
Спасибо всем
Но он ошибку пишет Warning: Illegal offset type
Или выводит так: Array ( [0] => 3 )
Как бы исправить?

Спустя 13 часов, 5 минут, 2 секунды (10.05.2010 - 09:56) WebClass написал(а):
Или может подскажите как сделать чтобы цифры по порядку выводились и по одной циферки
То есть , чтобы при обновление страницы была другая цифра (от 1 до 3)
Возможно ли так?

Спустя 1 день, 7 часов, 31 минута, 58 секунд (11.05.2010 - 17:28) Han написал(а):
Цитата
Или может подскажите как сделать чтобы цифры по порядку выводились и по одной циферки
То есть , чтобы при обновление страницы была другая цифра (от 1 до 3)
Возможно ли так?


Да, конечно. Если при обновлении страницы то лучше воспользоваться сессиями.

<?php
session_start();
if($_SESSION['fd'] && $_SESSION['fd']!==3)
{
$_SESSION['fd']++;
echo $_SESSION['fd'];
}
else
{
$_SESSION['fd']=1;
echo $_SESSION['fd'];
}
?>

Спустя 27 минут, 35 секунд (11.05.2010 - 17:55) Han написал(а):
Вот еще smile.gif

<?php
session_start();
if($_SESSION['fd'] && $_SESSION['fd']<4)
{
$_SESSION['fd']++;
switch($_SESSION['fd'])
{
case 1:
echo "один";
break;
case 2:
echo "два";
break;
case 3:
echo "три";
break;
default: {$_SESSION['fd']=1; echo "один";};
}
}

else
{
$_SESSION['fd']=1;
echo "один";
}
?>

Спустя 6 минут, 42 секунды (11.05.2010 - 18:02) Han написал(а):
Или даже так


<?php
session_start();
$_SESSION['fd']++;
if ($_SESSION['fd']<4)
{
if ($_SESSION['fd']==2)
{
echo "два";
}
elseif ($_SESSION['fd']==3)
{
echo "три";
}
}

else
{
$_SESSION['fd']=1;
echo "один";
}
?>

Спустя 10 минут, 39 секунд (11.05.2010 - 18:12) WebClass написал(а):
А можно без сессий?
А то они у меня не работают...

Спустя 47 минут, 37 секунд (11.05.2010 - 19:00) Han написал(а):
Можно cookies, MySQL, через запись и чтение файла, но это будет не правильно учитывая что существуют сессии. Давай лучше включать сесии потому что на всех прямых вебсерверах сессии включенны и эти 3 скрипта будут работать там де ты их разместиш(в смысле на хостах).

Спустя 12 часов, 15 минут, 57 секунд (12.05.2010 - 07:16) WebClass написал(а):
У меня ошибка просто
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.