Menu
Coddy logo textTech

Удаление с помощью 'array_shift'

Часть раздела Логика и управление потоком путешествия по PHP на Coddy — урок 13 из 68.

Функция array_shift() удаляет первый элемент из массива и возвращает это удаленное значение. Это действие противоположно функции array_unshift(), которая добавляет элементы в начало массива.

Вот как это работает:

<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson;  // Выводит: Alice
print_r($queue);    // Выводит: Array ( [0] => Bob [1] => Charlie )
?>

Обратите внимание, что array_shift() одновременно изменяет исходный массив и возвращает удаленный элемент. После удаления первого элемента все остальные элементы автоматически сдвигаются вниз, чтобы заполнить пустоту — "Bob" перемещается с индекса 1 на индекс 0, а "Charlie" перемещается с индекса 2 на индекс 1.

Это переиндексирование происходит автоматически, гарантируя, что ваш массив сохраняет правильную числовую последовательность. Если вы используете array_shift() с пустым массивом, она возвращает null, не вызывая ошибки.

Эта функция особенно полезна для реализации очередей, где элементы обрабатываются в порядке «первым пришел — первым обслужен» (FIFO) — например, при обслуживании клиентов в очереди или обработке задач в порядке их поступления.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

challenge icon

Задание

Легко

Вы получите два входных значения: исходный массив клиентов, ожидающих в очереди, в формате JSON и число, указывающее, сколько клиентов нужно обслужить. Прочитайте оба входных значения, преобразуйте строку JSON в массив, используйте array_shift() указанное количество раз, чтобы удалить обслуженных клиентов из начала очереди, и выведите итоговый массив с помощью print_r().

Формат входных данных: Две строки — первая строка содержит массив JSON (например: ["Alice","Bob","Charlie","Diana"]), вторая строка содержит количество клиентов для обслуживания (число).

Ожидаемый результат: Массив после удаления обслуженных клиентов из начала, отображенный с помощью print_r()

Шпаргалка

Функция array_shift() удаляет первый элемент из массива и возвращает это удаленное значение:

<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson;  // Выводит: Alice
print_r($queue);    // Выводит: Array ( [0] => Bob [1] => Charlie )
?>

Ключевые моменты:

  • Изменяет исходный массив и возвращает удаленный элемент
  • Оставшиеся элементы автоматически переиндексируются (сдвигаются вниз)
  • Возвращает null, если используется с пустым массивом
  • Полезна для реализации очередей «первым пришел — первым ушел» (FIFO)

Попробуйте сами

<?php
// Прочитать JSON-массив клиентов
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);

// Прочитать количество клиентов для обслуживания
$numToServe = intval(fgets(STDIN));

// TODO: Напишите ваш код ниже
// Используйте array_shift(), чтобы удалить клиентов из начала очереди


// Вывести итоговый массив
print_r($customers);
?>
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Логика и управление потоком