За последние 24 часа нас посетили 17628 программистов и 1610 роботов. Сейчас ищут 2140 программистов ...

Удаление дублей строк по первым X символам

Тема в разделе "Сделайте за меня", создана пользователем Alexisx, 29 мар 2019.

  1. Alexisx

    Alexisx Новичок

    С нами с:
    29 мар 2019
    Сообщения:
    2
    Симпатии:
    0
    Добрый день, в php разбираюсь на уровне "нагуглил-поменял переменные на свои-использую", но увы подобного нагуглить не смог.
    Подскажите пожалуйста:
    есть 1.txt с содержанием примерно:
    7777asca
    7777xcajjc
    7777ucuax77a
    8888xcjajxj
    9777xcjaj8
    7777ckac88x

    Необходимо удалить дубли строк, учитывая только первые 4 символа. Тоесть на выходе мы должны получить: new_1.txt с содержимым:
    7777asca
    8888xcjajxj
    9777xcjaj8
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    PHP:
    1. $fIn = './1.txt';
    2. $fOut = './2.txt';
    3. if (file_exists($fIn) && $fh = fopen($fIn, 'r') ) {
    4.     $hash = [];
    5.     while (!feof($fh) && $line=fgets($fh)) {
    6.         $prefix = trim(substr($line,0,4));
    7.         if(!empty($prefix) && !isset($hash[$prefix])) {
    8.             file_put_contents($fOut, $line, FILE_APPEND);
    9.             $hash[$prefix] = 1;
    10.         }
    11.     }
    12.     fclose($fh);
    13. }
     
    Alexisx нравится это.
  3. Alexisx

    Alexisx Новичок

    С нами с:
    29 мар 2019
    Сообщения:
    2
    Симпатии:
    0
    Спасибо большое, то, что нужно! Я бы до такого наверно никогда не дошёл!