Menu
Coddy logo textTech

Filtrando por Estado de Completación

Parte de la sección Fundamentos del Journey de PHP de Coddy — lección 59 de 71.

challenge icon

Desafío

Fácil

En la lección anterior, eliminaste una tarea de la lista. Ahora, agrega la capacidad de filtrar tareas por su estado de completación.

Lee cuatro líneas de entrada para descripciones de tareas (tres tareas iniciales más una nueva tarea). Luego lee una quinta entrada: un entero que representa el índice de la tarea a marcar como completa. Lee una sexta entrada: un entero que representa el índice de la tarea a eliminar. Finalmente, lee una séptima entrada: una cadena que es ya sea completed o pending para filtrar las tareas.

Después de construir el arreglo $todos, marcar la tarea especificada como completa y eliminar la tarea en el índice dado, filtra las tareas restantes basadas en la entrada de filtro:

  • Si el filtro es completed, muestra solo las tareas donde "completed" es true
  • Si el filtro es pending, muestra solo las tareas donde "completed" es false

Recorre las tareas restantes e imprime solo las que coincidan con el filtro, usando el mismo formato:

  • Si la tarea está completada: - [task description] (Done)
  • Si la tarea está pendiente: - [task description] (Pending)

Imprime cada tarea coincidente en una línea separada.

Ejemplo:

Si las entradas son Buy groceries, Walk the dog, Finish homework, Call mom, 1, 2, y completed, la salida debería ser:

- Walk the dog (Done)

Si las entradas son Buy groceries, Walk the dog, Finish homework, Call mom, 1, 2, y pending, la salida debería ser:

- Buy groceries (Pending)
- Call mom (Pending)

Pruébalo tú mismo

<?php
// Colección de tareas predefinida
$tasks = [
    [
        "description" => "Buy groceries",
        "completed" => false
    ],
    [
        "description" => "Walk the dog", 
        "completed" => true
    ],
    [
        "description" => "Read a book",
        "completed" => false
    ],
    [
        "description" => "Exercise",
        "completed" => true
    ],
    [
        "description" => "Clean house",
        "completed" => false
    ],
    [
        "description" => "Call mom",
        "completed" => true
    ]
];

// Leer entrada del tipo de filtro
$filterType = trim(fgets(STDIN));

// TODO: Escribe tu código a continuación
// Usa un bucle foreach para iterar a través de las tareas
// Usa lógica condicional para filtrar tareas según el estado de completado
// Muestra los resultados en el formato requerido

?>

Todas las lecciones de Fundamentos