שינוי ערכים לפי מפתח
חלק מהיחידה יסודות במסלול ה-PHP של Coddy. שיעור 43 מתוך 71.
כמו שלמדת לשנות איברים במערך מאונדקס לפי מיקומם, אפשר לעדכן ערכים במערכים אסוציאטיביים באמצעות המפתחות שלהם. התחביר זהה: משייכים ערך חדש למפתח קיים.
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
$person["age"] = 26;
$person["city"] = "London";
echo $person["age"]; // 26
echo $person["city"]; // London
?>כשמקצים ערך למפתח שכבר קיים, PHP פשוט מחליפה את הערך הישן בחדש. המפתח עצמו נשאר ללא שינוי: רק הערך המשויך אליו מתעדכן.
זה שימושי כאשר הנתונים צריכים להשתנות לאורך זמן. למשל, עדכון הסטטוס של משתמש, שינוי המחיר של מוצר או תיקון מידע שהוזן באופן שגוי. המפתח משמש כנקודת ייחוס קבועה, בעוד שניתן לשנות את הערך לפי הצורך.
אתגר
קלקרא שורת קלט המכילה אובייקט JSON שמייצג את המידע של מוצר (למשל, {"name": "Laptop", "price": 999, "stock": 50}).
לאחר מכן קרא ארבעה קלטים נוספים:
- מחרוזת
key1- המפתח הראשון לעדכון - מחרוזת
value1- הערך החדש שלkey1 - מחרוזת
key2- המפתח השני לעדכון - מחרוזת
value2- הערך החדש שלkey2
צור מערך אסוציאטיבי מקלט ה-JSON, ואז:
- עדכן את הערך המשויך ל-
key1ל-value1 - עדכן את הערך המשויך ל-
key2ל-value2 - הדפס את הערך המעודכן של
key1 - הדפס את הערך המעודכן של
key2
הדפס כל תוצאה בשורה נפרדת.
דוגמה:
אם הקלטים הם {"name": "Laptop", "price": 999, "stock": 50}, price, 1099, stock ו-45, הפלט צריך להיות:
1099
45אם הקלטים הם {"city": "Paris", "country": "France", "population": 2000000}, city, London, country ו-UK, הפלט צריך להיות:
London
UKנסו בעצמכם
<?php
// קראו את קלט ה-JSON
$jsonInput = trim(fgets(STDIN));
// קראו את המפתחות והערכים שיש לעדכן
$key1 = trim(fgets(STDIN));
$value1 = trim(fgets(STDIN));
$key2 = trim(fgets(STDIN));
$value2 = trim(fgets(STDIN));
// המירו את JSON למערך אסוציאטיבי
$product = (array)json_decode($jsonInput, true);
// TODO: כתבו את הקוד שלכם למטה
// 1. עדכנו את הערך המשויך ל-key1 ל-value1
// 2. עדכנו את הערך המשויך ל-key2 ל-value2
// 3. הדפיסו את הערכים המעודכנים
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואהשוויון וזהותאופרטורים לוגיים — חלק 1אופרטורים לוגיים — חלק 2סיכום — לוגיקה פשוטה7מערכים חלק 2 - אסוציאטיביים
מבוא למערכים אסוציאטיבייםגישה לערכים לפי מפתחשינוי ערכים לפי מפתחהוספת זוגות מפתח-ערך חדשיםבדיקה אם מפתח קייםסיכום - מאגר נתונים של מפתח-ערך2משתנים וסוגי נתונים
מספריםמחרוזות ומירכאותערכים בוליאנייםכללי מתן שמותסיכום – אתחול משתניםמשתנים ריקיםשרשור מחרוזותקבלת קלט מהמשתמשהמרה לסוגים שונים3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור מודולואופרטור חזקההשמה משולבתהגדלה והקטנהקדימות אופרטוריםסיכום — חישובים פשוטיםאופרטורים למחרוזותתרגלו בעצמכם: קומפיילר PHP אונליין