Menu
Coddy logo textTech

Filtrando por Status de Conclusão

Parte da seção Fundamentos do Journey de PHP da Coddy — lição 59 de 71.

challenge icon

Desafio

Fácil

Na lição anterior, você removeu uma tarefa da lista. Agora, adicione a capacidade de filtrar tarefas pelo status de conclusão.

Leia quatro linhas de entrada para descrições de tarefas (três tarefas iniciais mais uma nova tarefa). Em seguida, leia uma quinta entrada: um inteiro representando o índice da tarefa a ser marcada como concluída. Leia uma sexta entrada: um inteiro representando o índice da tarefa a ser removida. Finalmente, leia uma sétima entrada: uma string que é completed ou pending para filtrar as tarefas.

Após construir o array $todos, marcar a tarefa especificada como concluída e remover a tarefa no índice dado, filtre as tarefas restantes com base na entrada de filtro:

  • Se o filtro for completed, exiba apenas tarefas onde "completed" é true
  • Se o filtro for pending, exiba apenas tarefas onde "completed" é false

Percorra as tarefas restantes e imprima apenas as que correspondem ao filtro, usando o mesmo formato:

  • Se a tarefa estiver concluída: - [task description] (Done)
  • Se a tarefa estiver pendente: - [task description] (Pending)

Imprima cada tarefa correspondente em uma linha separada.

Exemplo:

Se as entradas forem Buy groceries, Walk the dog, Finish homework, Call mom, 1, 2 e completed, a saída deve ser:

- Walk the dog (Done)

Se as entradas forem Buy groceries, Walk the dog, Finish homework, Call mom, 1, 2 e pending, a saída deve ser:

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

Experimente você mesmo

<?php
// Coleção de tarefas 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
    ]
];

// Read filter type input
$filterType = trim(fgets(STDIN));

// TODO: Escreva seu código abaixo
// Use um loop foreach para iterar pelas tarefas
// Use lógica condicional para filtrar tarefas com base no status de conclusão
// Exiba os resultados no formato requerido

?>

Todas as lições de Fundamentos