scandir("$papka");)
но так чтобы всегда формировался один и тот же результат..
и ещё нужно создать к каждой ячейке массива с файлами ячейку с рандомным числом от 10 до 20 например, но опять же всегда при исполнении этой функции результат должен быть одинаков - цифры не должны меняться при каждом обращении к странице..
решил я что нужно сделать функцию которая создаёт кагбе рандомное число но нифига не рандомное а на основе содержимого файлов, брать первые 100 символов, брать например ASCII код каждого символа, чего-нибудь с ними делать и получать уникальное число..
но я никак не могу понять как это число загнать в рамки от 10 до 20, тоесть получил я число 276, что потом можно сделать чтобы из таких крупных или мелких чисел получать нужные мне в рамках от 10 до 20..
подскажите :)
да и вообще как лучше сделать такую функцию, сам алгоритм интересен
Спустя 23 минуты, 25 секунд (20.07.2011 - 18:48) kovaldm написал(а):
Так примерно можно.
$num = 276;
while($num < 10 || $num > 20)
{
$num = ($num <= 1)? 2 : $num;
if($num > 20)
$num = round($num / 2);
else
$num = $num * 2;
}
echo $num;
Спустя 6 минут, 13 секунд (20.07.2011 - 18:55) nvrskozzy написал(а):
$num = ($num <= 1)? 2 : $num;
спасибо но эту строчку не пойму)
Спустя 4 минуты, 35 секунд (20.07.2011 - 18:59) kovaldm написал(а):
Если $num будет равно 1, 0, или меньше нуля, то скрипт работать не будет. Лучше будет эту проверку делать перед циклом.
Спустя 5 минут, 5 секунд (20.07.2011 - 19:04) nvrskozzy написал(а):
странная проверка без if без скобок фигурных)
думаю что есть ещё вариант зазать обычный rand(10,20); и создать тхт файл с результатами, а перед этим проверку делать, если файл существует, то rand Не включать, а юзать цифры из файла..
что скажете, отстойная идея?)
как быстрее будет работать страница при обращении к ней, с мутотнёй с файлом или с функцией где возможно сотни вычислений делается с переменной каждой?)
думаю что есть ещё вариант зазать обычный rand(10,20); и создать тхт файл с результатами, а перед этим проверку делать, если файл существует, то rand Не включать, а юзать цифры из файла..
что скажете, отстойная идея?)
как быстрее будет работать страница при обращении к ней, с мутотнёй с файлом или с функцией где возможно сотни вычислений делается с переменной каждой?)
Спустя 9 минут, 40 секунд (20.07.2011 - 19:14) kovaldm написал(а):
Цитата |
странная проверка без if без скобок фигурных) |
Сокращенная форма if-else, называется - тернарный оператор.
Проверка наличия файла, имхо дольше будет. Хотя брать из файла первые 100 символов, затем кодировать - перекодировать, пожалуй не быстрее получится.
Спустя 13 минут, 5 секунд (20.07.2011 - 19:27) nvrskozzy написал(а):
может есть проще способ и быстрее? чем первые 100 символов?
Спустя 14 минут, 19 секунд (20.07.2011 - 19:41) Joker написал(а):
:D
function my_rand()
{
return mt_rand(0,99999);
}
Спустя 59 секунд (20.07.2011 - 19:42) Winston написал(а):
Так можно еще
function myRand($start = 0, $end = 9999)
{
$array = range($start, $end);
// для специи можно еще
// shuffle($array);
return $array[array_rand($array)];
}
echo myRand(1, 20);
Спустя 11 минут, 43 секунды (20.07.2011 - 19:54) nvrskozzy написал(а):
Цитата (PHPprogrammer @ 20.07.2011 - 16:42) |
Так можно ещеfunction myRand($start = 0, $end = 9999) |
ну при обновлении страницы будут же меняться числа..
мне нужно чтобы за конкретным файлом было закреплено конкретное число и оно никогда не менялось..
Спустя 24 минуты, 56 секунд (20.07.2011 - 20:19) kovaldm написал(а):
Добавляй его постфиксом к имени файла.
Спустя 2 минуты, 8 секунд (20.07.2011 - 20:21) neadekvat написал(а):
Так может, делать все-таки рандомно, а потом сохранять инфу о сортировке, и при следующем запуске выводить список уже из сохраненной инфы.
Спустя 17 минут, 19 секунд (20.07.2011 - 20:38) kovaldm написал(а):
Или храни свои "рандомные" числа в БД.
Спустя 23 часа, 3 минуты, 27 секунд (21.07.2011 - 19:42) nvrskozzy написал(а):
ну я так и написал про запись в тхт файл, бд нету на сайте и не будет, кроме как в тхт записать вроде как некуда..
_____________