Удалить повторы слов в файле

seowin

Новичок
Помогите, пожалуйста, написать скрипт.

Задача следующая.
Есть txt файл, в котором строки формата:

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

Иногда слова в пределах разных строк повторяюся.

Задача - удалить повторы слов.

Т.е. не выходе должно быть:
абдикация|отречение
абзац|часть|отрывок|кусок|рождать
абитуриент|ученик|институтка|академист
абонировать|нанимать|рядить
абордаж|столкновение|сцепка|свалка
абориген|житель|туземец
абортировать
абракадабра|бессмыслица|белиберда|нелепость|ахинея|нелепица|чепуха
абсолютно|полностью|вполне|бесспорно|безусловно|непременно|совершенно
абстрактный|духовный|отвлеченный
абсурд|бред|бреда|вздор

Ломал голову, так и не смог написать рабочий вариант скритпа.

Не доходит, как пересохранить строку в файле.

Накидал пока вот что:
PHP:
<?php

$file = file('1.txt');

for($a = 0; $a < count($file); $a++) {

   $file[$a] = trim($file[$a]);
  
   $ex = explode('|', $file[$a]);
  
   foreach($ex as $val) {
  
   for($i = 0; $i < count($ex); $i++) {
  
     for($j = $a + 1; $j < count($file); $j++) {
       if(strpos($file[$j], $ex[$i])) {
       str_replace($ex[$i], "", $file[$j]) . "<br/>";
       }
     }

   }

}

?>
 
Последнее редактирование модератором:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Не обязательно переписывать только строку, можешь просто переписать весь файл.
 

seowin

Новичок
А как это правильно сделать? Этот момент мне как раз не ясен..
 

scorpion-ds

Новичок
Я бы поместил все это в массивы, нашел повторы, удалил их, а потом снова все это в файл.

explode, array_unique, implode
 
Сверху