Удаление задачи
Часть раздела Основы путешествия по 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";
}
}
?>Все уроки раздела Основы
4Операторы сравнения и логические операторы
Операторы сравненияРавенство и идентичностьЛогические операторы. Часть 1Логические операторы. Часть 2Повторение — простая логика2Переменные и типы данных
ЧислаСтроки и кавычкиБулевы значенияСоглашения об именованииПовторение — инициализация переменныхПустые переменныеКонкатенация строкПолучение пользовательского вводаПриведение к другим типам5Условная логика
Оператор ifIf — ElseТернарный операторОператор нулевого слиянияОператор switchПовторение: принятие решений3Основные операторы
Арифметические операторыОператор остатка от деленияОператор возведения в степеньСоставное присваиваниеИнкремент/декрементПриоритет операторовПовторение — простые вычисленияОператоры строк6Массивы, часть 1 — индексированные
Введение в массивыСоздание индексированных массивовДоступ к элементам по индексуИзменение элементов по индексуРазмер массива с помощью CountДобавление элементов в массивПовторение — управление простым списком9Проект: простой список задач
Обзор проекта и данныхДобавление новой задачиПотренируйтесь самостоятельно: Онлайн-компилятор PHP