מעבר בלולאה על מפתחות וערכים
חלק מהיחידה יסודות במסלול ה-PHP של Coddy. שיעור 50 מתוך 71.
בשיעור הקודם למדת איך foreach מאפשרת לך לגשת לכל ערך במערך. אבל מה אם דרוש לך גם המפתח? הדבר שימושי במיוחד כשעובדים עם מערכים אסוציאטיביים.
ללולאת foreach יש תחביר מורחב שמספק גם את המפתח וגם את הערך בכל איטרציה:
<?php
$person = [
"name" => "Alice",
"age" => 25,
"city" => "Paris"
];
foreach ($person as $key => $value) {
echo "$key: $value\n";
}
?>הפלט הוא:
name: Alice
age: 25
city: Parisהתחביר foreach ($array as $key => $value) משייך את המפתח הנוכחי ל־$key ואת הערך המתאים ל־$value. אפשר לתת למשתנים האלה כל שם שרוצים, רק חשוב שיהיו תיאוריים.
זה עובד גם עם מערכים עם אינדקסים, שבהם המפתחות הם האינדקסים המספריים:
<?php
$colors = ["red", "green", "blue"];
foreach ($colors as $index => $color) {
echo "$index: $color\n";
}
?>הפלט הוא:
0: red
1: green
2: blueהגישה גם למפתחות וגם לערכים מקלה על הצגת נתונים עם תוויות או על ביצוע פעולות שתלויות במפתח.
אתגר
קלקרא שורת קלט אחת המכילה אובייקט JSON שמייצג מוצר עם מפתחות וערכים (למשל, {"name":"Laptop","price":"999","stock":"25"}).
השתמש בלולאת foreach עם תחביר מפתח-ערך כדי לעבור על נתוני המוצר. הדפס כל מפתח ואת הערך המתאים לו בתבנית:
[key] => [value]הדפס כל זוג מפתח-ערך בשורה נפרדת.
דוגמה 1:
אם הקלט הוא {"name":"Laptop","price":"999","stock":"25"}, הפלט צריך להיות:
name => Laptop
price => 999
stock => 25דוגמה 2:
אם הקלט הוא {"title":"PHP Basics","author":"John","pages":"350"}, הפלט צריך להיות:
title => PHP Basics
author => John
pages => 350דוגמה 3:
אם הקלט הוא {"city":"Paris","country":"France"}, הפלט צריך להיות:
city => Paris
country => Franceנסו בעצמכם
<?php
// קראו את קלט ה-JSON
$input = trim(fgets(STDIN));
// המירו את ה-JSON למערך אסוציאטיבי
$product = (array)json_decode($input, true);
// TODO: כתבו את הקוד שלכם למטה
// השתמשו בלולאת foreach עם תחביר מפתח-ערך כדי לעבור על נתוני המוצר
// הדפיסו כל מפתח וערך בפורמט: [key] => [value]
?>השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות
4אופרטורי השוואה ולוגיקה
אופרטורי השוואהשוויון וזהותאופרטורים לוגיים — חלק 1אופרטורים לוגיים — חלק 2סיכום — לוגיקה פשוטה2משתנים וסוגי נתונים
מספריםמחרוזות ומירכאותערכים בוליאנייםכללי מתן שמותסיכום – אתחול משתניםמשתנים ריקיםשרשור מחרוזותקבלת קלט מהמשתמשהמרה לסוגים שונים8לולאות
לולאת forלולאת whileלולאת foreachמעבר בלולאה על מפתחות וערכיםהוראת breakהוראת continueחזרה: מעבר איטרטיבי על נתונים3אופרטורים בסיסיים
אופרטורים אריתמטייםאופרטור מודולואופרטור חזקההשמה משולבתהגדלה והקטנהקדימות אופרטוריםסיכום — חישובים פשוטיםאופרטורים למחרוזותתרגלו בעצמכם: קומפיילר PHP אונליין