Удаление задачи
Часть раздела Основы путешествия по PHP на Coddy — урок 58 из 71.
Задание
ЛегкоВ предыдущем уроке вы отметили задачу как выполненную. Теперь добавьте возможность полностью удалить задачу из списка.
Прочитайте четыре строки ввода с описаниями задач (три начальные задачи плюс одна новая). Затем прочитайте пятый ввод: целое число, представляющее индекс задачи для отметки как выполненной. Наконец, прочитайте шестой ввод: целое число, представляющее индекс задачи для удаления из списка.
После создания массива $todos со всеми четырьмя задачами и отметки указанной задачи как выполненной удалите задачу по заданному индексу удаления с помощью array_splice().
Функция array_splice() удаляет элементы из массива:
<?php
array_splice($array, $index, 1); // Removes 1 element at $index
?>Затем пройдитесь циклом по оставшимся задачам и выведите каждую в том же формате, что и раньше:
- Если задача выполнена:
- [task description] (Done) - Если задача ожидает:
- [task description] (Pending)
Выводите каждую задачу на отдельной строке.
Пример:
Если вводы Buy groceries, Walk the dog, Finish homework, Call mom, 1 и 2, то вывод должен быть:
- Buy groceries (Pending)
- Walk the dog (Done)
- Call mom (Pending)Если вводы Clean room, Read book, Exercise, Cook dinner, 0 и 0, то вывод должен быть:
- Read book (Pending)
- Exercise (Pending)
- Cook dinner (Pending)Попробуйте сами
<?php
// Read three task descriptions
$task1 = trim(fgets(STDIN));
$task2 = trim(fgets(STDIN));
$task3 = trim(fgets(STDIN));
// Read the new task to add
$newTask = trim(fgets(STDIN));
// Read the index of the task to mark as complete
$completeIndex = (int)trim(fgets(STDIN));
// Create a $todos array containing three task arrays
// Each task should be an associative array with "task" and "completed" keys
$todos = [
["task" => $task1, "completed" => false],
["task" => $task2, "completed" => false],
["task" => $task3, "completed" => false]
];
// Add the new task to the end of the array
$todos[] = ["task" => $newTask, "completed" => false];
// Mark the task at the specified index as complete
$todos[$completeIndex]["completed"] = true;
// Loop through the array and print each task in the formatted list
foreach ($todos as $todo) {
if ($todo["completed"]) {
echo "- " . $todo["task"] . " (Done)\n";
} else {
echo "- " . $todo["task"] . " (Pending)\n";
}
}
?>Все уроки раздела Основы
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 List9Проект: Простой список задач
Обзор проекта и данныеДобавление новой задачи