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 TarefaPratique por conta própria: Compilador de PHP online