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