Menu
Coddy logo textTech

מעבר בלולאה על מפתחות וערכים

חלק מהיחידה יסודות במסלול ה-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

הגישה גם למפתחות וגם לערכים מקלה על הצגת נתונים עם תוויות או על ביצוע פעולות שתלויות במפתח.

challenge icon

אתגר

קל

קרא שורת קלט אחת המכילה אובייקט 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]

?>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות

תרגלו בעצמכם: קומפיילר PHP אונליין