Filtrando por Status de Conclusão
Parte da seção Fundamentos do Journey de PHP da Coddy — lição 59 de 71.
Desafio
FácilNa 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
4Comparison & Logical Operators
Comparison OperatorsEquality & IdentityLogical Operators Part 1Logical Operators Part 2Recap - Simple Logic2Variables and Data Types
NumbersStrings and QuotesBooleansNaming ConventionsRecap - Variable InitEmpty VariablesString ConcatenationGetting User InputCast to Different Types5Conditional Logic
If StatementIf - ElseThe Ternary OperatorNull Coalescing OperatorSwitch StatementRecap - Making Decisions3Basic Operators
Arithmetic OperatorsModulo OperatorExponentiation OperatorCombined AssignmentIncrement/DecrementOperator PrecedenceRecap - Simple CalculationsString Operators6Arrays Part 1 - Indexed
Introduction to ArraysCreating Indexed ArraysAccessing Elements by IndexModifying Elements by IndexArray Size with CountAdding Elements to an ArrayRecap - Managing a Simple List9Projeto: Lista de Tarefas Simples
Visão Geral do Projeto e DadosAdicionando uma Nova Tarefa