[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сравнение строки с остальными строками файла
seowin
Задача следующая. Есть txt файл формата:
красивый|быстрый|смелый
хорошой|пестрый|длинный
бледный|красныцй|ярый|беглый
смелый|настоящий|кран
бледный|красныцй|ярый|беглый
румяный|пестрый|яростный

Нужно сравнивать слова из каждой строчки со всем файлом и в случае нахождения слова в другой строке, добавить эту строку(строки) к текущей проверяемой. Далее сохранить эту строку в новый файл.

Т.е. как мы видим, некоторые слова могут встречаться в других строках. Например, вот 2 строки:
красивый|быстрый|смелый
смелый|настоящий|кран

Здесь, как мы видим, встречается одинаковое слово "смелый".
Скрипт должен соединить эти строки так: "красивый|быстрый|смелый|смелый|настоящий|кран" и записать в новый файл.

Слова в новом файле в разных строках повторяться не должны.

Т.е. релузьтатом работы скрипта в данном случае был бы файл с таким содержанием:

красивый|быстрый|смелый|смелый|настоящий|кран
хорошой|пестрый|длинный|румяный|пестрый|яростный
бледный|красныцй|ярый|беглый
грустный|веселый|большой

Пробовал и так и сяк. Не доходит, как это реализовать.

Остановился на таком варианте, но он тоже неверно работает:

<?php

set_time_limit(0);

$file = file("1.txt"); // Открываем первый файл и заносим из него все строки в массив
$file3 = "3.txt";
$proverka = file_get_contents("3.txt");


//Запись в файл
function add_to_file($string)
{
global $file3;
$res = fopen($file3,'a');
$try = fwrite($res, $string);
if (!$try) {echo 'Ошибка! Не могу записать в файл: '.$file3."\n";}
}


$line_pattern = "";

foreach ($file as $line)
{

$line = trim($line);
$pattern = "/" . $line . "/i";

//Проверяем, есть ли в файле результата вхождение одного из слова
if(!preg_match($pattern, $proverka)) {

for($i = 1; $i < count($file); $i++)
{
if(preg_match($pattern, $file[$i])) {
$arr_vibor = array_slice($file, $i, 1);
$line .= "|" . $arr_vibor[0];
}
}


add_to_file($line);

}
}



?>


Буду очень благодарен за помощь!
Быстрый ответ:

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