Desafío: Filtro de elementos únicos
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy. Lección 68 de 68.
Desafío
FácilRecibirás una única entrada: una cadena de elementos separados por comas que puede contener duplicados.
La entrada será una cadena con este formato: apple,banana,apple,orange,banana,grape,apple
Lee la cadena de entrada y divídela en un array de elementos. Utiliza array_filter() con una función de callback personalizada para eliminar los elementos duplicados, manteniendo solo la primera aparición de cada elemento único.
Para lograr esto, crea una función de callback que rastree qué elementos ya han sido vistos. El callback debe devolver true para los elementos encontrados por primera vez y false para los duplicados. Puedes usar una variable fuera del callback y capturarla por referencia con use (&$seen) para que las actualizaciones persistan a través de las llamadas que array_filter realiza al callback.
Después de filtrar, imprime cada elemento único en una línea separada en el orden en que aparecieron por primera vez en la entrada original.
Formato de entrada:
- Una sola línea que contiene elementos separados por comas (ejemplo:
apple,banana,apple,orange)
Salida esperada: Cada elemento único impreso en una línea separada, en el orden de su primera aparición en la entrada
Pruébalo tú mismo
<?php
// Leer la entrada
$input = trim(fgets(STDIN));
// Dividir la entrada en un array
$items = explode(',', $input);
// TODO: Escribe tu código a continuación
// Usa array_filter() con una función de callback personalizada para eliminar duplicados
// Imprimir cada elemento único en una línea separada
?>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 simple7Trabajando con fechas y horas
La función 'date()'Timestamps de Unix con 'time()'Introducción al objeto DateTimeFormateo de objetos DateTimeModificación de objetos DateTimeResumen: Cálculos con fechas10Desafíos finales
Desafío: Verificador de palíndromosDesafío: Frecuencia de caracteresDesafío: Total del carrito de comprasDesafío: Filtro de elementos únicos2Manipulació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