На главную страницу

НЕСТАНДАРТНЫЕ УДАЛЕНИЯ В 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() объединяет массив в одну строку.



В начало страницы
Hosted by uCoz