הגדרת הפרויקט: מבנה הנתונים
חלק מהיחידה לוגיקה וזרימת תוכנית במסלול ה-PHP של Coddy. שיעור 33 מתוך 68.
אתגר
קלתקבלו קלט אחד: אובייקט JSON שמייצג פנקס ציונים של תלמידים. פנקס הציונים משתמש בשמות התלמידים כמפתחות, ולכל תלמיד יש מערך אסוציאטיבי שמכיל את "id" (מספר מזהה של התלמיד) ואת "grades" (מערך של ציוני המבחנים שלו). קראו את הקלט, המירו את מחרוזת ה-JSON למערך אסוציאטיבי דו־ממדי, והדפיסו את כל מבנה פנקס הציונים באמצעות print_r().
מבנה הנתונים הזה ישמש בסיס למערכת פנקס הציונים שתבנו לאורך הפרויקט.
פורמט הקלט: שורה אחת שמכילה אובייקט JSON המייצג את פנקס הציונים (לדוגמה: {"Alice":{"id":101,"grades":[85,92,78]},"Bob":{"id":102,"grades":[90,88,95]},"Charlie":{"id":103,"grades":[76,84,89]}})
הפלט הצפוי: מערך פנקס הציונים שמוצג באמצעות print_r()
נסו בעצמכם
<?php
// קרא את קלט ה-JSON
$input = fgets(STDIN);
// TODO: המר את מחרוזת ה-JSON למערך אסוציאטיבי
// TODO: הדפס את המבנה של gradebook באמצעות print_r()
?>כל השיעורים ביחידה לוגיקה וזרימת תוכנית
1פונקציות מתקדמות
פונקציות אנונימיותסגירות ו-'use'פונקציות חץפונקציות callbackשימוש ב-'call_user_func'פונקציות משתנותהעברה באמצעות הפניהפונקציות רקורסיביותסיכום: מגוון פונקציות4מערכים רב־ממדיים
יצירת מערך דו־ממדיגישה לאיברי מערך דו־ממדישינוי איברי מערך דו־ממדימעבר באמצעות לולאות מקוננותמערכים אסוציאטיביים דו־ממדייםסיכום: תרגיל רשת פשוטה2מניפולציות מתקדמות במערכים
הוספה באמצעות 'array_push'הסרה באמצעות 'array_pop'הוספה לתחילת המערך באמצעות 'array_unshift'הסרה מתחילת המערך באמצעות 'array_shift'מיזוג מערכים ממוספריםמיזוג מערכים אסוציאטיבייםחילוץ באמצעות 'array_slice'בדיקת ערכים באמצעות 'in_array'חיפוש מפתחות באמצעות 'array_search'סיכום: תרגיל רשימת השמעה5פנקס ציונים לתלמידים
הגדרת הפרויקט: מבנה הנתוניםהוספת תלמיד חדשהוספת ציון לתלמידחישוב הממוצע של התלמידמציאת התלמיד המצטייןהפקת תעודת ציונים3מיון מערכים
מיון מערכים עם אינדקסים בסדר עולהמיון מערכים עם אינדקסים בסדר יורדמיון מערכים אסוציאטיביים לפי ערךמיון מערכים אסוציאטיביים לפי מפתחמיון בסדר טבעימיון מותאם אישית באמצעות 'usort'סיכום: מיון טבלת מוביליםתרגלו בעצמכם: קומפיילר PHP אונליין