Eliminar con 'array_shift'
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 13 de 68.
La función array_shift() elimina el primer elemento de un array y devuelve ese valor eliminado. Esto es lo opuesto a array_unshift(), que añade elementos al principio de un array.
Así es como funciona:
<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson; // Muestra: Alice
print_r($queue); // Muestra: Array ( [0] => Bob [1] => Charlie )
?>Ten en cuenta que array_shift() tanto modifica el array original como devuelve el elemento eliminado. Después de eliminar el primer elemento, todos los elementos restantes se desplazan automáticamente hacia abajo para llenar el hueco: "Bob" se mueve del índice 1 al índice 0, y "Charlie" se mueve del índice 2 al índice 1.
Esta reindexación ocurre automáticamente, asegurando que tu array mantenga la secuencia numérica adecuada. Si usas array_shift() en un array vacío, devuelve null sin causar un error.
Esta función es especialmente útil para implementar colas, donde se procesan los elementos en un orden "first in, first out" (primero en entrar, primero en salir), como al atender a clientes en una fila o procesar tareas en el orden en que se recibieron.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Desafío
FácilRecibirás dos entradas: un array inicial de clientes esperando en fila en formato JSON y un número que indica cuántos clientes atender. Lee ambas entradas, convierte la cadena JSON en un array, utiliza array_shift() el número especificado de veces para eliminar a los clientes atendidos de la parte delantera de la fila y muestra el array final utilizando print_r().
Formato de entrada: Dos líneas: la primera línea contiene un array JSON (ejemplo: ["Alice","Bob","Charlie","Diana"]), la segunda línea contiene el número de clientes a atender (un número)
Resultado esperado: El array después de eliminar a los clientes atendidos de la parte delantera, mostrado utilizando print_r()
Hoja de referencia
La función array_shift() elimina el primer elemento de un array y devuelve ese valor eliminado:
<?php
$queue = ["Alice", "Bob", "Charlie"];
$firstPerson = array_shift($queue);
echo $firstPerson; // Salida: Alice
print_r($queue); // Salida: Array ( [0] => Bob [1] => Charlie )
?>Puntos clave:
- Modifica el array original y devuelve el elemento eliminado
- Los elementos restantes se reindexan automáticamente (se desplazan hacia abajo)
- Devuelve
nullsi se usa en un array vacío - Útil para implementar colas "primero en entrar, primero en salir" (FIFO)
Pruébalo tú mismo
<?php
// Leer el array JSON de clientes
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);
// Leer el número de clientes a atender
$numToServe = intval(fgets(STDIN));
// TODO: Escribe tu código a continuación
// Usa array_shift() para eliminar clientes del frente de la fila
// Mostrar el array final
print_r($customers);
?>Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Lógica y Flujo
1Funciones avanzadas
Funciones anónimasClosures y 'use'Funciones de flechaFunciones callbackUso de 'call_user_func'Funciones variablesPaso por referenciaFunciones recursivasResumen: Miscelánea de funciones4Arreglos multidimensionales
Crear un arreglo 2DAcceder a elementos de un arreglo 2DModificar elementos de un arreglo 2DIterar con bucles anidadosArreglos asociativos 2DResumen: Ejercicio de cuadrícula simple2Manipulación avanzada de arrays
Agregar con 'array_push'Eliminar con 'array_pop'Agregar con 'array_unshift'Eliminar con 'array_shift'Fusionar arrays indexadosFusionar arrays asociativosExtraer con 'array_slice'Valores con 'in_array'Claves con 'array_search'Resumen: Ejercicio de Playlist3Ordenar Arrays
Ordenar arrays indexados de forma ascendenteOrdenar arrays indexados de forma descendenteOrdenar arrays asociativos por valorOrdenar arrays asociativos por claveOrdenación por orden naturalOrdenación personalizada con 'usort'Resumen: Ordenar tablas de clasificación