Removendo com 'array_shift'
Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 13 de 68.
A função array_shift() remove o primeiro elemento de um array e retorna esse valor removido. Isso é o oposto de array_unshift(), que adiciona elementos ao início de um array.
Veja como funciona:
<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson; // Saída: Alice
print_r($queue); // Saída: Array ( [0] => Bob [1] => Charlie )
?>Observe que array_shift() modifica o array original e retorna o elemento removido. Após remover o primeiro elemento, todos os elementos restantes são deslocados automaticamente para baixo para preencher a lacuna — "Bob" move-se do índice 1 para o índice 0, e "Charlie" move-se do índice 2 para o índice 1.
Esta reindexação acontece automaticamente, garantindo que seu array mantenha a sequência numérica adequada. Se você usar array_shift() em um array vazio, ele retorna null sem causar um erro.
Esta função é particularmente útil para implementar filas, onde você processa itens em uma ordem "first in, first out" (primeiro a entrar, primeiro a sair) — como atender clientes em uma fila ou processar tarefas na ordem em que foram recebidas.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Desafio
FácilVocê receberá duas entradas: um array inicial de clientes esperando na fila em formato JSON e um número indicando quantos clientes devem ser atendidos. Leia ambas as entradas, converta a string JSON em um array, use array_shift() o número especificado de vezes para remover os clientes atendidos da frente da fila e imprima o array final usando print_r().
Formato de entrada: Duas linhas - a primeira linha contém um array JSON (exemplo: ["Alice","Bob","Charlie","Diana"]), a segunda linha contém o número de clientes a serem atendidos (um número)
Saída esperada: O array após a remoção dos clientes atendidos da frente, exibido usando print_r()
Folha de consulta
A função array_shift() remove o primeiro elemento de um array e retorna esse valor removido:
<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson; // Saída: Alice
print_r($queue); // Saída: Array ( [0] => Bob [1] => Charlie )
?>Pontos principais:
- Modifica o array original e retorna o elemento removido
- Os elementos restantes são reindexados automaticamente (deslocados para baixo)
- Retorna
nullse for usada em um array vazio - Útil para implementar filas do tipo "primeiro a entrar, primeiro a sair" (FIFO)
Experimente você mesmo
<?php
// Lê o array JSON de clientes
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);
// Lê o número de clientes a serem atendidos
$numToServe = intval(fgets(STDIN));
// TODO: Escreva seu código abaixo
// Use array_shift() para remover clientes da frente da fila
// Exibe o array final
print_r($customers);
?>Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Lógica & Fluxo
1Funções Avançadas
Funções AnônimasClosures e 'use'Arrow FunctionsFunções de CallbackUsando 'call_user_func'Funções VariáveisPassagem por ReferênciaFunções RecursivasRecapitulação: Mix de Funções4Arrays Multidimensionais
Criando um Array 2DAcessando Elementos de um Array 2DModificando Elementos de um Array 2DIterando com Loops AninhadosArrays Associativos 2DRecapitulação: Exercício de Grade Simples2Manipulações Avançadas de Arrays
Adicionando com 'array_push'Removendo com 'array_pop'Adicionando com 'array_unshift'Removendo com 'array_shift'Mesclando Arrays IndexadosMesclando Arrays AssociativosExtraindo com 'array_slice'Valores com 'in_array'Chaves com 'array_search'Recapitulação: Exercício de Playlist3Ordenação de Arrays
Ordenar Arrays Indexados (Crescente)Ordenar Arrays Indexados (Decrescente)Ordenar Arrays Associativos por ValorOrdenar Arrays Associativos por ChaveOrdenação por Ordem NaturalOrdenação Personalizada com 'usort'Recapitulação: Ordenação de Leaderboard