שינוי איברי מערך דו־ממדי
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 29 מתוך 68.
לאחר שתוכל לגשת לאיברים במערך דו־ממדי, הצעד ההגיוני הבא הוא ללמוד כיצד לשנות את הערכים שלהם. שינוי איברים במערך דו־ממדי נעשה באמצעות אותה תחביר של אינדוקס כפול כמו הגישה אליהם, אך עם אופרטור השמה כדי להגדיר ערך חדש.
כך משנים איבר מסוים במערך דו־ממדי:
<?php
$gameBoard = [
["", "", ""],
["", "", ""],
["", "", ""]
];
// שנה את התא המרכזי ל-'X'
$gameBoard[1][1] = "X";
// שנה את הפינה השמאלית העליונה ל-'O'
$gameBoard[0][0] = "O";
?>התחביר $gameBoard[1][1] = "X" מצביע על שורה 1, עמודה 1 (מרכז של רשת 3x3) ומקצה את הערך "X" למיקום הזה. כך משנים ישירות את המערך המקורי ומחליפים כל ערך שהיה שם קודם.
טכניקת השינוי הזו חיונית לעדכון מצבי משחק, לשינוי נתונים בטבלאות או לכל מצב שבו עליך לשנות מיקומים מסוימים בתוך מבנה נתונים דמוי־רשת. היכולת לאתר ולעדכן מיקומים מדויקים הופכת מערכים דו־ממדיים למושלמים לייצוג מידע דינמי ומשתנה המאורגן בשורות ובעמודות.
אתגר
קליתקבלו ארבעה קלטים: מערך דו־ממדי המייצג תרשים ישיבה בפורמט JSON, אינדקס שורה, אינדקס עמודה ושם של נוסע חדש. קראו את כל ארבעת הקלטים, המירו את מחרוזת ה-JSON למערך דו־ממדי, שנו את האיבר בשורה ובעמודה שצוינו על ידי השמת שם הנוסע החדש, והדפיסו את המערך הדו־ממדי המעודכן באמצעות print_r().
המערך הדו־ממדי מייצג תרשים ישיבה שבו כל איבר מכיל שם של נוסע או מחרוזת ריקה עבור מושבים פנויים.
פורמט הקלט:
- שורה ראשונה: מערך JSON המייצג את תרשים הישיבה (לדוגמה:
[["Alice","Bob",""],["","Charlie","Diana"],["","",""]]) - שורה שנייה: אינדקס שורה (מספר שלם)
- שורה שלישית: אינדקס עמודה (מספר שלם)
- שורה רביעית: שם הנוסע החדש (מחרוזת)
הפלט הצפוי: המערך הדו־ממדי ששונה, מוצג באמצעות print_r()
נסו בעצמכם
<?php
// קראו את הקלטים
$json_input = trim(fgets(STDIN));
$row_index = intval(fgets(STDIN));
$col_index = intval(fgets(STDIN));
$new_passenger = trim(fgets(STDIN));
// המירו את JSON למערך דו־ממדי
$seating_chart = (array)json_decode($json_input, true);
// TODO: כתבו את הקוד שלכם למטה כדי לשנות את תרשים הישיבה
// הציגו את המערך המעודכן
print_r($seating_chart);
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1פונקציות מתקדמות
פונקציות אנונימיותסגירות ו-'use'פונקציות חץפונקציות callbackשימוש ב-'call_user_func'פונקציות משתנותהעברה באמצעות הפניהפונקציות רקורסיביותסיכום: מגוון פונקציות4מערכים רב־ממדיים
יצירת מערך דו־ממדיגישה לאיברי מערך דו־ממדישינוי איברי מערך דו־ממדימעבר באמצעות לולאות מקוננותמערכים אסוציאטיביים דו־ממדייםסיכום: תרגיל רשת פשוטה2מניפולציות מתקדמות במערכים
הוספה באמצעות 'array_push'הסרה באמצעות 'array_pop'הוספה לתחילת המערך באמצעות 'array_unshift'הסרה מתחילת המערך באמצעות 'array_shift'מיזוג מערכים ממוספריםמיזוג מערכים אסוציאטיבייםחילוץ באמצעות 'array_slice'בדיקת ערכים באמצעות 'in_array'חיפוש מפתחות באמצעות 'array_search'סיכום: תרגיל רשימת השמעה3מיון מערכים
מיון מערכים עם אינדקסים בסדר עולהמיון מערכים עם אינדקסים בסדר יורדמיון מערכים אסוציאטיביים לפי ערךמיון מערכים אסוציאטיביים לפי מפתחמיון בסדר טבעימיון מותאם אישית באמצעות 'usort'סיכום: מיון טבלת מוביליםתרגלו בעצמכם: קומפיילר PHP אונליין