Как перемешать большой массив урлов?

12
BUFO
На сайте с 15.06.2003
Offline
224
4104

Есть большой массив урлов в столбец (txt, excel) Как его перемешать в случайном порядке в столбец?

Подскажите plz кто знает

Artlight
На сайте с 15.09.2003
Offline
123
#1

Его надо один раз перемешать, или эта процедура должна повторяться периодически?

Записать в массив и перемешать с помощью shuffle()

Как в Exel перемешивать - найти не смог, но гнаверняка должна быть такая функция.

Обменяю свой вмр на ваш яд курс 1-1
to4kaRU
На сайте с 01.09.2005
Offline
14
#2

Решал подобную задачу на php, делается очень просто через определение пользовательской функции сортировки. Если такое решение интересно, могу привести код.

М-да.. уже понял, что извратился=) shuffle() тоже можно:)

A
На сайте с 12.05.2004
Offline
176
#3

В экселе заполняем 2ой столбец функцией =СЛЧИС() и сортируем по 2му столбцу.

Каширин
На сайте с 03.01.2004
Offline
1018
#4
BUFO:
Есть большой массив урлов в столбец (txt, excel) Как его перемешать в случайном порядке в столбец?
Подскажите plz кто знает

Да что угодно помести во второй столбец в Экселе - СЛЧИС() - случайное число, ДЛСТР () - длина строки в символах. Или что-то еще, чем можешь сделать сортировку поинтересней, чем просто рандом ;) И - сортировка по возрастанию/убыванию по второму столбцу :)

Хм, а кстати, не спросил. Большой - это какой? ;) Эксел пойдет только до 65 тыс. строк :)

В общем - если не решишь, пиши, помогу ☝

iexpert
На сайте с 01.09.2005
Offline
184
#5

<?

$mass = file("file.txt");
shuffle($mass);
var_dump($mass);
?>

Индексы потеряете.

Бойтесь ваших желаний, ибо они могут исполниться
BUFO
На сайте с 15.06.2003
Offline
224
#6

Всем спасибо

Каширин, сенкс, ща попробую. А массив примерно 30K

Artlight
На сайте с 15.09.2003
Offline
123
#7

Еще один способ придумался, пока про Exel не прочитал.

Запихать в Аллсубмиттер и отсортировать по тИц (pr)

F
На сайте с 28.10.2000
Offline
47
#8

Artlight, вероятно речь про страницы, у которых еще нет ПР :)

Усложнять - просто, упрощать - сложно.
ICQ 399-750-045
S
На сайте с 25.12.2003
Offline
173
#9

У меня есть что-то готовое на php..

Нужен текстовый файл со строками разделенными "\n". 30к строк будет обрабатывать 10сек. Лучше сделать на локальном компе.


<?
$file1 = "file1.txt";
$file2 = "file2.txt";

function array_shuffle ($array) {
while (count($array) > 0) {
$val = array_rand($array);
$new_arr[$val] = $array[$val];
unset($array[$val]);
}
return $new_arr;
}

if(file_exists($file1)){
$fd1=fopen($file1,'r');
$file_content1 = fread($fd1, filesize($file1));
fclose($fd1);
$file_content2 = preg_split('/\n/', $file_content1, -1, PREG_SPLIT_NO_EMPTY);
$file_content2 = array_shuffle($file_content2);

foreach($file_content2 as $v){
$res .= trim($v)."\n";
}
$fd2=fopen($file2,'w+');
fwrite($fd2, $res);
fclose($fd2);
}
?>
Красивые сниппеты Google ( https://saney.com/tools/google-snippets-generator.html )
C
На сайте с 30.04.2005
Offline
5
#10

К чему городить такой огород? Задача решается элементарно в три строки:

$lines = file('in.txt');

shuffle($lines);
file_put_contents('out.txt', implode('', $lines));
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий