Menu
Coddy logo textTech

הסרת משימה

חלק מהיחידה יסודות במסלול ה-PHP של Coddy. שיעור 58 מתוך 71.

challenge icon

אתגר

קל

בשיעור הקודם סימנת משימה כהושלמה. עכשיו הוסף את האפשרות להסיר משימה מהרשימה לחלוטין.

קרא ארבע שורות קלט של תיאורי משימות (שלוש משימות התחלתיות ועוד משימה חדשה אחת). לאחר מכן קרא קלט חמישי: מספר שלם שמייצג את האינדקס של המשימה שיש לסמן כהושלמה. לבסוף, קרא קלט שישי: מספר שלם שמייצג את האינדקס של המשימה שיש להסיר מהרשימה.

לאחר יצירת מערך $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";
    }
}
?>

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר PHP אונליין