На главную страницу
НЕСТАНДАРТНЫЕ УДАЛЕНИЯ В PHPУдаление пустых элементов из массиваВ PHP нет стандартной функции удаления пустых элементов массива, но иногда это бывает очень нужно. Поэтому для очистки массивов от пустых строк я предлагаю использовать следующую PHP-функцию, которой в качестве параметра передается массив, который необходимо очистить от пустых строк: function Clear_array_empty($array) { $ret_arr = array(); foreach($array as $val) { if (!empty($val)) { $ret_arr[] = trim($val); } } return $ret_arr; } Если эту функцию немного модифицировать, то ее вполне можно будет использовать для проверки элементов массива другого типа – например объектов. Или для удаления всех элементов массива не удовлетворяющих условию. Для этого нужно только заменить if (!empty($val)) на свое условие. Удаление строки из файлаСначала определимся, что для удаления определенной строки нам нужен её номер. Его мы будем передавать с идентификатором id: file.php?id=2 (удалим строку под номером 3, так как исчисления элементов в массиве ведётся с нуля, но позже мы это сгладим). if ($id != "") { $id--; $file=file("file.txt"); $fp=fopen("file.txt","w"); for($i=0;$i<sizeof($file);$i++) { if($i==$id) { unset($file[$i]); } } fputs($fp,implode("",$file)); fclose($fp); } Элементы функции: • функция file() считывает весь файл в массив (каждая строка - это его элемент); • $id-- вычитает один из нашего идентификатора, так что 2 становится 2, а 3 - 3; • unset($file[$i]) удаляет или обнуляет элемент массива (но только из памяти, т. е. виртуально); • iplode() объединяет массив в одну строку. |