С нами с 04.09.03
Сообщения: 439
Рейтинг: 410
|
Добавлено: 26/08/07 в 13:09 |
нужно чтобы скрипт смог миксовать урлы, например:
есть такой файл с урлами
1
2
3
4
5
после обработки нужен примерно такой результат
4
2
5
1
3
у меня уже есть подобный скрипт
<?php
$url=file('url.txt');
shuffle($url);
$f=fopen('url_round.txt','w');
foreach ($url as $u)
fwrite($f,rtrim($u)."\r\n");
fclose($f);
?>
он миксует хорошо небольшие файлы, но когда в файле примерно 200 урлов то мешанина получаеться не качественная =)
Кто может подсказать если уже готовые такого рода скрипты или может быть кто сможет доработать уже существующий скрипт ?
|
|
|
|
♥♥♥
С нами с 28.08.04
Сообщения: 7098
Рейтинг: 5671
|
Добавлено: 26/08/07 в 13:15 |
могу предложить shuffle от перла
мешаю файлы по 300-500 урлов - нормально получается
ЗЫ а два раза пропустить не пробовал?)
|
|
|
|
С нами с 01.06.06
Сообщения: 341
Рейтинг: 282
|
Добавлено: 26/08/07 в 14:04 |
прога Raptor умеет за минутку перемешивать файлики по 200 метров
|
|
|
|
С нами с 04.09.03
Сообщения: 439
Рейтинг: 410
|
Добавлено: 26/08/07 в 14:07 |
пробовал, без изменений практически
если нормально мешает, интересно попробовать =)
|
|
|
|
С нами с 04.09.03
Сообщения: 439
Рейтинг: 410
|
Добавлено: 26/08/07 в 15:52 |
Palmowner писал: | прога Raptor умеет за минутку перемешивать файлики по 200 метров |
где ее качнуть можно ?
|
|
|
|
С нами с 01.06.06
Сообщения: 341
Рейтинг: 282
|
Добавлено: 26/08/07 в 20:24 |
|
|
|
|
С нами с 04.09.03
Сообщения: 439
Рейтинг: 410
|
Добавлено: 26/08/07 в 22:49 |
спасибо парни за помощь, но оказываеться этот скрипт
<?php
$url=file('url.txt');
shuffle($url);
$f=fopen('url_round.txt','w');
foreach ($url as $u)
fwrite($f,rtrim($u)."\r\n");
fclose($f);
?>
прекрасно работает, а я чуток протормозил
Сибтор привет ;)
|
|
|
|
С нами с 26.02.03
Сообщения: 2366
Рейтинг: 987
|
Добавлено: 27/08/07 в 18:48 |
Кармы отсыпь
|
|
|
|
С нами с 12.05.06
Сообщения: 132
Рейтинг: 29
|
Добавлено: 28/08/07 в 10:55 |
вообще, строго говоря, shuffle() не самый быстрый способ перемешать массив. запамятовал где точно обсуждалось на ру-борде эта тема. Существует более быстрый алгоритм
|
|
|
|
С нами с 28.11.02
Сообщения: 518
Рейтинг: 539
|
Добавлено: 28/08/07 в 19:20 |
ещё вариант
$maxx=10; // -- числа будут от 1 до $maxx
$maxn=5; // -- всего $maxn чисел в массиве
$x=array(); // здесь будет массив наших чисел
$tmp=array(); // временный массив
for ($i=0; $i<$maxn; $i++) {
do {
$a=rand(1,$maxx);
} while(isset($tmp[$a]));
$tmp[$a]=1;
$x[]=$a;
}
unset($tmp);
for ($i=0; $i<count($x); $i++) echo "$x[$i] ";
|
|
|
|
С нами с 26.02.03
Сообщения: 2366
Рейтинг: 987
|
Добавлено: 28/08/07 в 22:54 |
Zhidrons писал: | вообще, строго говоря, shuffle() не самый быстрый способ перемешать массив. запамятовал где точно обсуждалось на ру-борде эта тема. Существует более быстрый алгоритм |
Ну во всяком случае во всех факах и доках по РНР пишут, что нефиг выдумывать свой алгоритм если уже есть стандартная функция, всеравно быстрее не будет
|
|
|
|
php
С нами с 09.10.06
Сообщения: 3706
Рейтинг: 2410
|
Добавлено: 04/09/07 в 16:44 |
а я бы предпочел заюзать array_rand()
|
|
|
|