גישה לאיברי מערך דו־ממדי
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 28 מתוך 68.
עכשיו, לאחר שלמדת ליצור מערכים דו־ממדיים, השלב הבא הוא ללמוד כיצד לאחזר מהם ערכים ספציפיים. כדי לגשת לאיברים במערך דו־ממדי נדרשים שני אינדקסים: הראשון עבור השורה והשני עבור העמודה, באמצעות התחביר $array[row][column].
כך ניגשים לאיבר מסוים במערך דו־ממדי:
<?php
$products = [
["Laptop", 999.99],
["Mouse", 25.50],
["Keyboard", 75.00]
];
// גישה למחיר של המוצר הראשון (Laptop)
echo $products[0][1]; // פלט: 999.99
// גישה לשם של המוצר השני (Mouse)
echo $products[1][0]; // פלט: Mouse
?>האינדקס הראשון [0] בוחר את השורה הראשונה (מערך המחשבים הניידים), והאינדקס השני [1] בוחר את האיבר השני בתוך אותה שורה (המחיר). אפשר לחשוב על זה כמו ניווט לתא מסוים בגיליון אלקטרוני על ידי ציון השורה והעמודה.
מערכת האינדקס הכפול הזו מאפשרת לך לזהות בדיוק איזה פריט נתונים ברצונך לקבל מהמבנה דמוי הרשת שלך, וכך מערכים דו־ממדיים מתאימים במיוחד לארגון מידע קשור בשורות ובעמודות.
אתגר
קלתקבלו שלושה קלטים: מערך דו־ממדי של פרטי תלמידים בפורמט JSON, אינדקס שורה ואינדקס עמודה. קראו את כל שלושת הקלטים, המירו את מחרוזת ה-JSON למערך דו־ממדי, גשו לאיבר באינדקסי השורה והעמודה שצוינו והדפיסו את האיבר.
המערך הדו־ממדי מייצג תלמידים, כאשר כל מערך פנימי מכיל: [student_name, age, grade]
פורמט הקלט:
- השורה הראשונה: מערך JSON המכיל פרטי תלמידים (לדוגמה:
[["Alice",16,85],["Bob",17,92],["Charlie",16,78]]) - השורה השנייה: אינדקס שורה (מספר שלם)
- השורה השלישית: אינדקס עמודה (מספר שלם)
הפלט הצפוי: האיבר במיקום השורה והעמודה שצוינו
נסו בעצמכם
<?php
// קראו את מערך ה-JSON
$jsonInput = trim(fgets(STDIN));
$students = (array)json_decode($jsonInput, true);
// קראו את אינדקס השורה
$rowIndex = intval(fgets(STDIN));
// קראו את אינדקס העמודה
$colIndex = intval(fgets(STDIN));
// TODO: כתבו את הקוד שלכם למטה כדי לגשת לאיבר בשורה ובעמודה שצוינו
// הציגו את התוצאה
echo $element;
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה לוגיקה וזרימת תוכנית
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 אונליין