Menu
Coddy logo textTech

Filtrado con 'array_filter'

Parte de la sección Lógica y Flujo del Journey de PHP de Coddy. Lección 41 de 68.

La función array_filter() está diseñada para crear un nuevo array que contenga únicamente los elementos que cumplen criterios específicos. A diferencia de array_map(), que transforma cada elemento, array_filter() conserva selectivamente los elementos según si superan una prueba.

Cuando se usa sin una función de devolución de llamada, array_filter() elimina automáticamente todos los valores «vacíos» de un array. PHP considera que varios valores están vacíos: false, null, 0, cadenas vacías "" y arrays vacíos.

<?php
$mixedData = ["hello", 0, "world", false, null, "PHP", ""];
$cleanedData = array_filter($mixedData);
// Resultado: ["hello", "world", "PHP"]
?>

Este comportamiento hace que array_filter() sea extremadamente útil para limpiar matrices de datos. La matriz original permanece sin cambios y obtienes una nueva matriz con solo los valores significativos. Esto resulta especialmente útil al procesar datos introducidos por el usuario o al trabajar con datos que podrían contener valores vacíos no deseados.

challenge icon

Desafío

Fácil

Recibirás una entrada: una lista de respuestas de una encuesta separadas por comas que contiene varios tipos de datos, incluidos números, cadenas vacías, ceros y respuestas de texto. La entrada tendrá el formato yes,0,,no,5,,true,false,answer.

Lee la entrada, convierte los valores separados por comas en un array, usa array_filter() sin una función de devolución de llamada para eliminar todos los valores vacíos e imprime cada valor restante en una línea separada, en el orden en que aparecen.

Recuerda que array_filter() sin una función de devolución de llamada elimina automáticamente los valores que PHP considera vacíos: false, null, 0, las cadenas vacías "" y los arrays vacíos.

Formato de entrada: Una línea que contiene valores separados por comas (ejemplo: yes,0,,no,5,,true,false,answer)

Salida esperada: Cada valor no vacío se imprime en una línea separada, en el orden en que aparece en el array filtrado

Pruébalo tú mismo

<?php
// Leer la entrada
$input = trim(fgets(STDIN));

// Convertir los valores separados por comas en un array
$responses = explode(',', $input);

// TODO: Escribe tu código debajo
// Usa array_filter() para eliminar los valores vacíos e imprimir cada valor restante


?>
quiz iconPonte a prueba

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

Practica por tu cuenta: Compilador de PHP online