Menu
Coddy logo textTech

מעבר באמצעות לולאות מקוננות

חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 30 מתוך 68.

כשעובדים עם מערכים דו־ממדיים, לעיתים קרובות צריך לעבד כל איבר ואיבר, ולכן יש לעבור על כל שורה ואז על כל עמודה באותה שורה. כאן לולאות מקוננות הופכות להכרחיות. משתמשים בלולאה אחת בתוך לולאה אחרת כדי לעבור באופן שיטתי על כל מבנה הרשת.

הלולאה החיצונית עוברת על כל שורה במערך הדו־ממדי, ואילו הלולאה הפנימית מעבדת כל איבר בשורה הנוכחית. כך זה עובד עם לולאת foreach:

<?php
$schedule = [
    ["Meeting", "Lunch", "Presentation"],
    ["Training", "Review", "Planning"],
    ["Workshop", "Break", "Demo"]
];

foreach ($schedule as $day) {
    foreach ($day as $appointment) {
        echo $appointment . "\n";
    }
}
?>

אפשר גם להשתמש בלולאות for מסורתיות כשצריך יותר שליטה על האינדקסים. הגישה הזאת מאפשרת לך לגשת למיקומים של השורה ושל העמודה:

<?php
for ($row = 0; $row < count($schedule); $row++) {
    for ($col = 0; $col < count($schedule[$row]); $col++) {
        echo "Day " . ($row + 1) . ", Time " . ($col + 1) . ": " . $schedule[$row][$col] . "\n";
    }
}
?>

תבנית הלולאות המקוננות הזו חיונית לעיבוד מלא של מערכים דו־ממדיים, בין אם מציגים נתונים, מבצעים חישובים או מחפשים ערכים מסוימים בכל מבנה הרשת.

challenge icon

אתגר

קל

יתקבל קלט אחד: מערך דו־ממדי המייצג סידור ישיבה בכיתה בפורמט JSON. כל מערך פנימי מייצג שורת מושבים, וכל איבר מכיל שם של תלמיד או מחרוזת ריקה עבור מושב פנוי. קראו את הקלט, המירו את מחרוזת ה-JSON למערך דו־ממדי, השתמשו בלולאות מקוננות כדי לעבור על כל סידור הישיבה, והדפיסו את שמו של כל תלמיד יחד עם המיקום שלו בפורמט: Row X, Seat Y: Name

דלגו על מושבים פנויים (מחרוזות ריקות) והדפיסו מידע רק עבור מושבים תפוסים. מספור השורות והמושבים צריך להתחיל מ-1 (ולא מ-0).

פורמט הקלט: שורה אחת המכילה מערך JSON המייצג את סידור הישיבה (לדוגמה: [["Alice","Bob",""],["","Charlie","Diana"],["Eve","","Frank"]])

הפלט הצפוי: כל מושב תפוס יודפס בשורה נפרדת בפורמט Row X, Seat Y: Name, כאשר X הוא מספר השורה ו-Y הוא מספר המושב (שניהם מתחילים מ-1)

נסו בעצמכם

<?php
// קראו את קלט ה-JSON
$input = trim(fgets(STDIN));

// המירו מחרוזת JSON למערך דו-ממדי
$seating = (array)json_decode($input, true);

// TODO: כתבו את הקוד שלכם למטה
// השתמשו בלולאות מקוננות כדי לעבור על השורות והמושבים
// זכרו לדלג על מושבים ריקים ולמספר את השורות והמושבים החל מ-1


?>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה לוגיקה וזרימת תוכנית

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