От автора: опять это пятно на моей любимой футболке! И опять не отстиралось! Наверное, использую неправильный порошок. Хорошо, что в PHP удалить элемент массива можно с первого раза. Как это сделать? Сейчас расскажу.
Тотальное удаление и не только
Модификация структурированных данных (чем, по сути, и являются массивы) широко применима в программировании. На этом принципе (перезаписи и редактировании) работает любая современная СУБД. Но это уже другой уровень «сознания».
Что касается массивов, то их значение тоже приходится часто изменять и даже удалять. Благодаря чему их можно перезаписывать и избавляться от «неактуальных» элементов.
Но иногда нужно очистить весь массив, а не удалить элемент массива по значению PHP. Сразу проинформирую, что большая часть операций модификации осуществляется с помощью специальных функций.
Чтобы удалить значения всех элементов, не затрагивая структуру массива, нужно использовать функцию unset(). Например:

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $sredstvo = array("Тайд","Гала","Лотос","Персил","Ариэль","Лоск","Биолан"); echo "Массив до изменения". "<br />"; print_r($sredstvo); $count = count($sredstvo); for ($c=0; $c<$count;$c++) { unset($sredstvo[$c]); } echo "<br />"; echo "Массив после изменения". "<br />"; print_r($sredstvo); ?> |
Теперь рассмотрим, как удалить элемент массива PHP с помощью этой же функции:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php $sredstvo = array("Тайд","Гала","Лотос","Персил","Ариэль","Лоск","Биолан"); echo "Массив до изменения". "<br />"; print_r($sredstvo); $count = count($sredstvo); for ($c=0; $c<$count;$c++) { unset($sredstvo[2]); } echo "<br />"; echo "Массив после изменения". "<br />"; print_r($sredstvo); ?> |
Кроме этого в PHP для удаления элемента массива по ключу необязательно перебирать его с помощью цикла. Достаточно напрямую передать функции unset() в качестве аргумента индекс элемента:
1 2 3 |
<?php unset($sredstvo[2]); ?> |
На самом деле в ПХП существует множество функций для манипуляций с массивами. Для рассмотрения всех не хватит одной статьи. Но мы постараемся охватить наиболее важные из встроенных средств. Функция array_diff():
1 2 3 4 5 6 7 8 |
<?php $sredstvo = array("Тайд","Лотос","Персил","Ариэль","Лоск","Биолан"); $sredstvo1 = array("Тайд","Лотос","Персил","Ариэль","Лоск","Биолан","Классный порошок"); $result = array_diff($sredstvo1, $sredstvo); echo "<br />"; echo "Уникальные элементы". "<br />"; print_r($result); ?> |
Наверное, вы уже догадались, что эта функция позволяет удалить одинаковые элементы массива PHP.

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!Другие виды удаления
Теперь быстро пробежимся по функциям, которые позволяют изымать из массива различные по порядку элементы. Но сделаем этот мини-обзор более интригующим и полезным. Я сначала приведу код и его результат, а вы попробуйте понять, чем эта функция «занимается». Тольку, чур, не подглядывать :). Функция array_pop():
1 2 3 4 5 6 7 8 9 10 11 |
<?php $sredstvo = array("Тайд","Лотос","Персил","Ариэль","Лоск","Биолан"); echo "Массив без изменений". "<br />"; print_r($sredstvo); $result = array_pop($sredstvo); echo "<br />"; echo "Массив без элемента". "<br />"; print_r($sredstvo); echo "<br />"; echo "Удаленный элемент массива, присвоенный переменной ".'$result'." ($result)"; ?> |
Надеюсь, вы догадались, что эта функция позволяет в PHP удалять последний элемент массива. Играем дальше :). Функция array_shift():
1 2 3 4 5 6 7 8 9 10 11 |
<?php $sredstvo = array("Тайд","Лотос","Персил","Ариэль","Лоск","Биолан"); echo "Массив без изменений". "<br />"; print_r($sredstvo); $result = array_shift($sredstvo); echo "<br />"; echo "Массив без элемента". "<br />"; print_r($sredstvo); echo "<br />"; echo "Удаленный элемент массива, присвоенный переменной ".'$result'." ($result)"; ?> |
Функция позволяет в PHP удалять первый элемент массива. И рассмотрим еще одно специализированное средство – array_unique().
1 2 3 4 5 6 7 8 9 10 |
<?php $sredstvo = array("Тайд","Лотос","Персил","Ариэль","Лоск","Биолан","Тайд"); echo "Массив без изменений". "<br />"; print_r($sredstvo); $result = array_unique($sredstvo); echo "<br />"; echo "Массив без элемента". "<br />"; print_r($result); ?> |
Так в PHP можно удалять повторяющиеся элементы массива.
Очищаем массив от «мусора»
Часто массивы остаются с пустыми элементами. Их значение удаляется после проведения каких-либо операций. Такие элементы лишь засоряют память и негативно влияют на производительность приложений (сайтов), замедляя их и потребляя лишние ресурсы. Понятно, что от таких элементов нужно избавляться:
1 2 3 4 5 6 7 8 9 10 11 |
<?php $sredstvo = array("Тайд","","Лотос","Персил","Ариэль","Лоск","Биолан","","Тайд"); echo "Массив без изменений". "<br />"; print_r($sredstvo); $function = array(null); $result = array_diff($sredstvo,$function); echo "<br />"; echo "Очищенный массив". "<br />"; print_r($result); ?> |
Исходя из кода примера, нам нужно удалять пустые элементы массива PHP с ключами 1 и 7. Напомню, что нумерация начинается с 0.
И мы снова применяем функцию array_diff(), которой в качестве второго аргумента передаем массив с одним пустым элементом.
Ну, так нечестно! Я вам почти весь материал чуть ли не «на блюдечке» преподнес. Так можно и облениться, поэтому в качестве домашнего задания оставляю вам рассмотреть PHP удаление элемента массива со сдвигом. А если не осилите, тогда пишите в комментариях – разберемся вместе. И если кто знает, то подскажите нормальный стиральный порошок, чтобы я избавился, наконец, от пятна на любимой футболке!

Бесплатный курс по PHP программированию
Освойте курс и узнайте, как создать веб-приложение на PHP с полного нуля
Получить курс сейчас!
Разработка веб-приложения на PHP
Скачайте видеокурс и узнайте, как создать веб-приложение на PHP
Скачать