PHP: Массивы
Теория: Удаление элементов массива
Из массива всегда можно удалить какой-нибудь элемент, но лучше так никогда не делать. Особенно плохо удалять и добавлять элементы во время обхода. Поведение в этом случае может оказаться совершенно непредсказуемым. Что будет, если мы модифицируем массив в том месте, до которого не дошел цикл? Нужно ли итерировать по тому элементу, который был удален или добавлен?
В этом уроке мы поговорим на эту тему. Вы узнаете больше о правильном выходе из этой ситуации — о создании нового массива. Так ваш код станет проще и для понимания и для отладки.
В стандартную библиотеку большинства языков входит функция compact, которая удаляет все значения null из массива. Вот ее реализация:
Обратите внимание, что в этом коде не происходит никаких удалений и модификаций исходного массива. Вместо этого мы создаем новый массив, который наполняется только подходящими под условие значениями. Именно так нужно воспринимать фразу «удалить элемент из массива».
Код с новым массивом меньше подвержен ошибкам, проще в отладке и оставляет больше возможностей для анализа. Вы всегда можете посмотреть исходный массив, если что-то пошло не так. Всегда можно понаблюдать за наполнением результирующего массива и четко отследить правильность поставленных условий.
По сути, код выше — это пример агрегации. Единственное отличие от предыдущих примеров состоит в том, что здесь результат — это массив, а не примитивный тип. Это совершенно нормально. Как вы увидите в дальнейшем, результат может быть и более сложной структурой. Сама операция прореживания массива обычно называется фильтрацией.
Рекомендуемые программы
Завершено
0 / 21
.png)
