Умение не только добавлять, но и удалять элементы — ключевой навык при работе с массивами. В PHP есть несколько способов сделать это, и каждый хорош для своей задачи. Иногда нужно удалить элемент по его имени (ключу), иногда — последний или первый в списке.
В этом тренажере мы рассмотрим основные инструменты для удаления: языковую конструкцию `unset()`, а также функции `array_pop()` и `array_shift()`. Ты научишься не только удалять данные, но и понимать, что происходит с массивом после удаления, например, как ведут себя ключи. Задания проведут тебя от самых азов до более сложных нюансов.
- Модуль 1: Основы синтаксиса PHP
- Модуль 2: Переменные и типы данных
- Модуль 3: Операторы
- Модуль 4: Условные конструкции
- Модуль 5: Циклы
- Модуль 6: Массивы
- Индексированные массивы.
- Ассоциативные массивы.
- Многомерные массивы.
- Добавление элементов в массив.
- Удаление элементов из массива.
- Функция count().
- Функция array_push() и array_pop().
- Функция array_shift() и array_unshift().
- Функция array_merge().
- Функция array_slice().
- Функция array_splice().
- Функция in_array().
- Функция array_search().
- Функция array_keys() и array_values().
- Функция array_unique().
- Функция array_reverse().
- Сортировка: sort(), rsort().
- Сортировка: asort(), arsort().
- Сортировка: ksort(), krsort().
- Функция array_map().
- Функция array_filter().
- Функция array_reduce().
- Функция array_walk().
- Функция array_column().
- Деструктуризация массивов.
- Модуль 7: Функции
- Объявление функций.
- Вызов функций.
- Параметры функций.
- Возврат значений return.
- Значения параметров по умолчанию.
- Передача по значению.
- Передача по ссылке.
- Переменное количество аргументов.
- Оператор распаковки ....
- Типизация параметров.
- Типизация возвращаемых значений.
- Nullable типы.
- Union типы (PHP 8).
- Именованные аргументы (PHP 8).
- Анонимные функции.
- Стрелочные функции.
- Замыкания и use.
- Рекурсивные функции.
- Глобальные переменные в функциях.
- Статические переменные в функциях.
- Модуль 8: Работа со строками
- Одинарные и двойные кавычки.
- Экранирование символов.
- Heredoc и Nowdoc синтаксис.
- Функция strlen().
- Функция substr().
- Функция str_replace().
- Функция strpos() и strrpos().
- Функция explode() и implode().
- Функция trim(), ltrim(), rtrim().
- Функция strtolower() и strtoupper().
- Функция ucfirst() и ucwords().
- Функция str_repeat().
- Модуль 9: Суперглобальные переменные
- Модуль 10: Работа с формами
- Модуль 11: Работа с файлами
- Модуль 12: Дата и время
- Модуль 13: Регулярные выражения
- Модуль 14: Сессии и Cookie
- Модуль 15: Include и Require
- Модуль 16: Объектно-ориентированное программирование
- Модуль 17: Пространства имен
- Модуль 18: Обработка ошибок и исключений
- Модуль 19: Работа с JSON и XML
- Модуль 20: Работа с базами данных MySQLi
- Модуль 21: PDO - PHP Data Objects
- Модуль 22: Composer и зависимости
- Модуль 23: cURL и HTTP запросы
- Модуль 24: REST API
- Модуль 25: Безопасность
- Модуль 26: Генераторы и итераторы
- Модуль 27: Reflection API
- Модуль 28: Работа с изображениями
- Модуль 29: Отправка email
- Модуль 30: Паттерны проектирования
- Модуль 31: Тестирование
- Модуль 32: Продвинутые возможности PHP 8+
Удаление по ключу с помощью unset()
У нас есть массив с данными пользователя, и нам нужно удалить конфиденциальную информацию перед отправкой. Заполни пропуски, чтобы с помощью конструкции `unset()` удалить из массива `$user` элемент с ключом 'password'.
<?php
$user = [
'id' => 123,
'login' => 'admin',
'password' => 'qwerty12345'
];
input1S($user[input2S]);
print_r($user);Эффект unset() на ключи массива
Очень важный нюанс `unset()`: при удалении элемента из индексированного массива его ключи НЕ переиндексируются. Посмотри на код и выбери вариант, который точно показывает, как будет выглядеть массив после удаления среднего элемента.
<?php
$letters = ['A', 'B', 'C'];
unset($letters[1]); // Удаляем 'B'
print_r($letters);Удаление последнего элемента с array_pop()
Функция `array_pop()` — это удобный способ "снять" последний элемент с массива. Используя токены из банка, составь команду, которая удалит последний элемент из массива `$stack`.
<?php
$stack = ['plate 1', 'plate 2', 'plate 3'];
// Убираем верхнюю тарелку из стопки
input1S(input2S);
print_r($stack);Что возвращает array_pop()?
Функция `array_pop()` не просто удаляет последний элемент, но и возвращает его значение. Это очень удобно. Проанализируй код и напиши в поле для ответа, какое именно значение будет выведено на экран.
<?php
$colors = ['red', 'green', 'blue'];
$removed_color = array_pop($colors);
echo $removed_color;Удаление первого элемента с array_shift()
Для удаления первого элемента массива существует функция `array_shift()`. Она работает аналогично `array_pop()`, но для начала массива. Заполни пропуски, чтобы удалить первый элемент из очереди `$queue`.
<?php
$queue = ['Task A', 'Task B', 'Task C'];
$first_task = input1S(input2S);
print_r($queue);Эффект array_shift() на ключи
В отличие от `unset()`, функция `array_shift()` всегда переиндексирует числовые ключи массива, чтобы они снова шли по порядку, начиная с 0. Посмотри на код и выбери, как будет выглядеть массив после удаления.
<?php
$items = ['A', 'B', 'C'];
array_shift($items);
print_r($items);unset() — это не функция
`unset()` является языковой конструкцией, а не функцией, и она ничего не возвращает. В коде допущена распространённая ошибка: программист пытается присвоить результат `unset()` переменной, что некорректно. Исправь строку, чтобы она просто удаляла элемент, не пытаясь ничего присвоить.
<?php$tasks = ['buy milk', 'call mom', 'pay bills'];$removed_item = unset($tasks[1]);print_r($tasks);Сравни методы удаления
Ты изучил три основных способа удаления элементов. Теперь давай окончательно закрепим разницу между ними. Сопоставь каждому методу в правой колонке его точное описание из левой колонки.
array_pop($arr);array_shift($arr);unset($arr['key']);