Удалить пустые строки в файле php
Имеется текстовый файл temp6.txt в котором следующая информация:
Удаление повторений и пустых строк таким образом
Не работает:
7 и 8 строка (см. рисунок) должны удалиться, как я понимаю, но они остаются. То есть, толку от array_unique и array_filter никакого. Точнее, я скорей всего неправильно использую функции.
Благодаря варианту Алексея Шиманского:
удалось избавиться от пустых строк. Но вот строки повторяются! array_unique бесполезная вещь какая-то. =(
Сопутствующий вопрос. А как отсортировать строки в порядке убывания первых 10 символов (чисел, например: 0000000504, 0000000503 и т.д.)? Я думаю, что лучше всю строку не рассматривать, т.к. там числа с текстом вперемешку. Но не пойму, как задать выборку, которая как бы и будет являться флагом.
ВСЕМ СПАСИБО! ВСЁ СДЕЛАЛА
Удаление повторов у вас прекрасно работает. А с последней строчкой «проблема» не в ней, а в символе новой строки в конце предпоследней строки – собственно, каждая строка с данными заканчивается символом новой строки.
Чтобы «пустой строки» не было, надо у последней строки с данным отрезать символ новой строки в конце.
Наиболее близко к исходному коду был бы такой вариант:
В первой строке в массив $data мы получаем уникальные строки без символа конца строки в конце каждой и пробелов по краям если были, что вряд ли.
Во второй выкидываем из массива пустые строки с помощью вспомогательной функции notEmpty() , хотя вряд ли там есть действительно пустые строки.
В третьей записываем в файл результат – соединяем элементы массива символом новой строки. Так после последней строки этого символа не будет.
Читайте также: