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 removed. Esto es lo contrario de 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; // Salida: Alice
print_r($queue); // Outputs: Array ( [0] => Bob [1] => Charlie )
?>Observa que array_shift() modifica tanto el arreglo 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 espacio: "Bob" pasa del índice 1 al índice 0, y "Charlie" pasa del índice 2 al índice 1.
Esta reindexación ocurre automáticamente, lo que garantiza que tu array mantenga una secuencia numérica adecuada. Si usas array_shift() en un array vacío, devuelve null sin provocar un error.
Esta función es especialmente útil para implementar colas, donde procesas los elementos en el orden de «primero en entrar, primero en salir», como al atender a clientes en una fila o procesar tareas en el orden en que se recibieron.
Desafío
FácilRecibirás dos entradas: un array inicial de clientes que esperan en la fila en formato JSON y un número que indica cuántos clientes atender. Lee ambas entradas, convierte la cadena JSON en un array, usa array_shift() el número de veces especificado para eliminar de la fila los clientes atendidos desde el principio y muestra el array final usando 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 que se deben atender (un número)
Salida esperada: El array después de eliminar los clientes atendidos desde el principio, mostrado usando print_r()
Pruébalo tú mismo
<?php
// Lee el array JSON de clientes
$jsonInput = fgets(STDIN);
$customers = (array)json_decode($jsonInput, true);
// Lee el número de clientes a atender
$numToServe = intval(fgets(STDIN));
// TODO: Escribe tu código debajo
// Usa array_shift() para eliminar clientes del frente de la fila
// Muestra 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ónPractica por tu cuenta: Compilador de PHP online