magiklove1 7 Posted June 1, 2017 Report Share Posted June 1, 2017 Приветствую! Если txt файл, в нем 80 000 строк. Не все строки уникальные, и это нормально. Допускается не более 4х повторений одной строки. Но проблема в том, что некоторые строки повторяются 20 раз. Задача: удалить все повторения, которых больше 4х. Как это сделать? Quote Link to post Share on other sites
serzh82 78 Posted June 1, 2017 Report Share Posted June 1, 2017 15 минут назад, magiklove1 сказал: Приветствую! Если txt файл, в нем 80 000 строк. Не все строки уникальные, и это нормально. Допускается не более 4х повторений одной строки. Но проблема в том, что некоторые строки повторяются 20 раз. Задача: удалить все повторения, которых больше 4х. Как это сделать? Если, можно, чтобы все строки были уникальные, то можно в exel убрать все дубликаты (Данные-Удалить дубликаты) Quote Link to post Share on other sites
magiklove1 7 Posted June 1, 2017 Author Report Share Posted June 1, 2017 2 минуты назад, serzh82 сказал: Если, можно, чтобы все строки были уникальные, то можно в exel убрать все дубликаты (Данные-Удалить дубликаты) Строки должны повторяться, но не более 4х раз Quote Link to post Share on other sites
c00x 33 Posted June 1, 2017 Report Share Posted June 1, 2017 $in = fopen( 'input.txt', 'r' ); if ( $in ) { $arr = array(); while ( ($line = fgets( $in )) !== false ) { $arr[$line][] = trim($line); } fclose( $in ); $out = fopen( 'output.txt', 'a' ); foreach ( $arr as &$value ) { if ( count( $value ) > 4 ) { $value = array_slice( $value, 0, 4 ); } foreach ( $value as $data ) { $data .= PHP_EOL; fwrite( $out, $data ); } } fclose( $out ); } PHP-говнокод на скорую руку. Только вывод будет сгруппирован по строкам. P.S. код не тестировал. magiklove1 1 Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.