Задача следующая. Есть txt файл формата:
красивый|быстрый|смелый
хорошой|пестрый|длинный
бледный|красныцй|ярый|беглый
смелый|настоящий|кран
бледный|красныцй|ярый|беглый
румяный|пестрый|яростный
Нужно сравнивать слова из каждой строчки со всем файлом и в случае нахождения слова в другой строке, добавить эту строку(строки) к текущей проверяемой. Далее сохранить эту строку в новый файл.
Т.е. как мы видим, некоторые слова могут встречаться в других строках. Например, вот 2 строки:
красивый|быстрый|смелый
смелый|настоящий|кран
Здесь, как мы видим, встречается одинаковое слово "смелый".
Скрипт должен соединить эти строки так: "красивый|быстрый|смелый|смелый|настоящий|кран" и записать в новый файл.
Слова в новом файле в разных строках повторяться не должны.
Т.е. релузьтатом работы скрипта в данном случае был бы файл с таким содержанием:
красивый|быстрый|смелый|смелый|настоящий|кран
хорошой|пестрый|длинный|румяный|пестрый|яростный
бледный|красныцй|ярый|беглый
грустный|веселый|большой
Пробовал и так и сяк. Не доходит, как это реализовать.
Остановился на таком варианте, но он тоже неверно работает:
PHP:
скопировать код в буфер обмена
<?PHP $file = file("1.txt"); // Открываем первый файл и заносим из него все строки в массив $file3 = "3.txt"; //Запись в файл function add_to_file($string) { global $file3; $res = fopen($file3,'a'); if (!$try) {echo 'Ошибка! Не могу записать в файл: '.$file3."\n";} } $line_pattern = ""; foreach ($file as $line) { $pattern = "/" . $line . "/i"; //Проверяем, есть ли в файле результата вхождение одного из слова for($i = 1; $i < count($file); $i++) { $line .= "|" . $arr_vibor[0]; } } add_to_file($line); } } ?>
Буду очень благодарен за помощь!
|