Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP - Удаление повторяющихся строк

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

AleksKar

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет друзья. Нужна ваша помощь в решении одной проблемы. На хостинге есть файл представляющий собой форму:
 
abc | Text | Text
cba | Text | Text
cba | Text | Text - Эту строку нужно удалить
 
Сравнивать нужно только первый столбец (во втором и третьем может быть совершенно любой текст). И вопрос заключается, как можно сделать удаление строк, в которых совпадают первые столбцы?

Всего записей: 1 | Зарегистр. 11-06-2018 | Отправлено: 17:48 11-06-2018
Mavrikii

Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AleksKar
есть общая тема для подобных вопросов
Простенький вопрос по PHP
решается элементарно - считываете в память, при этом первый столбец идет ключом для массива. если элемент уже есть - пропускаете повторный. а затем сохраняете. можно и без считывания всего в память (зависит от размера памяти и файла) - сохраняете только ключ, получаете список который можно оставить, потом считываете и записываете в новый файл игнорируя ключи которых нет в массиве.
 
первый вариант:

Код:
$newData = [];
$fname = 'file.txt';
$data = file($fname, FILE_SKIP_EMPTY_LINES);
foreach($data as $line) {
  $key = array_shift(explode('|', $line));
  if (isset($newData[$key])) continue;
  $newData[$key] = $line;
}
file_put_contents($fname, join('', $newData));

Всего записей: 6141 | Зарегистр. 20-09-2014 | Отправлено: 19:52 11-06-2018
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » PHP - Удаление повторяющихся строк

Имя:
Пароль:
Сообщение

Для вставки имени, кликните на нем.

Опции сообщенияДобавить свою подпись
Подписаться на получение ответов по e-mail
Добавить тему в личные закладки
Разрешить смайлики?
Запретить коды


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2018

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru