ב"ה
שלום לכולם.
במדריך הקודם למדנו על הדפסת דברים למסך, משתנים, ושחובה לשים בראש הקוד פתיח של קוד php (php?>
) .
במדריך הזה אנו נלמד על מערכים ב PHP
הבהרה: בקודים כאן לא כתבתי את הפתיח של PHP, אם אתם משתמשים בקודים המובאים כאן, ודאו שבראש הקוד שלכם מופיע הפתיח.
מערכים הם סוג של משתנה שיכול להחזיק מספר פריטים ביחד. כך נראה מערך שמחזיק שמות של אנשים.
$names = array("Moshe", "Shlomo", "Gavriel");
1. מערך מבוסס אינדקס
המערך הפשוט ביותר הוא מערך מבוסס אינדקס, וזה המבנה שלו.
$name_arry = array("פריט_3", "פריט_2", "פריט_1");
אפשר להוסיף למערך כמה פריטים שרוצים.
כדי לגשת לפריטים נשתמש במספר האינדקס, כשהפריט הראשון מוגדר כאינדקס 0, הפריט השני הוא אינדקס 1, השלישי אינדקס 2, וכן הלאה...
לדוגמה, כך נדפיס את הפריט הראשון למסך:
echo $names[0];
והתוצאה:
Mofshe
ואם רוצים להדפיס את הפריט השלישי:
echo $names[2];
התוצאה:
Gavriel
מערכים מכילים מפתחות וערכים
הרעיון שעומד מאחורי מערכים הוא הרעיון של מפתחות (keys) וערכים (values). כותבים את זה כך:
ערך <= מפתח
זו צורתו המפורשת של המערך. כדי לראות את המערך בצורתו המפורשת נוהגים להשתמש ב-print_r(). לדוגמה:
echo "<pre>";
print_r($names);
echo "</pre>";
שימו לב שאנחנו תוחמים את print_r() בין תגיות <pre> כדי שיוצג בצורה קריאה. זו התוצאה:
Array( [0] => Moshe [1] => Shlomo [2] => Gavriel )
הוספת פריט למערך
הוספת פריט למערך נעשית באופן הבא, בלי צורך לציין את מספר האינדקס:
$names[] = "David";
בדרך זו ניתן להוסיף כמה פריטים שרוצים:
$names[] = "Haim";
$names[] = "Itzik";
עכשיו נשתמש ב- print_r($names) כדי להדפיס את המערך בצורתו המפורשת, וזו התוצאה:
Array ( [0] => Moshe [1] => Shlomo [2] => Gavriel [3] => David [4] => Haim [5] => Itzik )
שינוי פריט במערך
כדי לשנות את ערכם של פריטים במערך, ניגש לפריטים עם האינדקס שלהם. לדוגמה, אם אנחנו רוצים לשנות את Shlomo ל-Yigal, כך נעשה זאת:
$names[1] = "Yigal";
כדי לראות שהצלחנו בשינוי המערך, נדפיס את הפריט ששינינו.
echo $names[1];
והתוצאה:
Yigal
מחיקת פריטים ומערכים
מחיקת פריטים ומערכים נעשית באמצעות ()unset.
נשתמש ב-unset כדי למחוק את הפריט הראשון מהמערך names$:
unset($names[0]);
ניתן למחוק את המערך כולו בדרך הבאה:
unset($names);
מערך שיוכי (אסוציאטיבי)
בעוד במערכים שמבוססים על אינדקס המפתחות הם מספריים, במערכים שיוכיים (אסוציאטיביים) המפתחות הם מחרוזות, ובדרך כלל אילו מחרוזות שיש להן משמעות. בואו נשכתב את המערך, והפעם עם מפתחות יותר משמעותיים מאינדקס בלבד.
$names = array(
"n1" => "Moshe",
"n2" => "Shlomo",
"n3" => "Gavriel");
אם נרצה לשלוף את הפריט הראשון:
echo $names["n1"];
והתוצאה: Moshe
כדי להציג את כל המערך נשתמש ב-print_r(), לדוגמה:
echo "<pre>";
print_r($names);
echo "</pre>";
והתוצאה:
Array ( [n1] => Moshe [n2] => Shlomo [n3] => Gavriel )
מערך רב-ממדי
עד כה ראינו מערכים שטוחים, אולם מאוד מקובל לקנן מערכים בתוך מערכים ועל ידי כך ליצור מערכים רב-ממדיים. המשמעות של לקנן זה לשים דבר אחד בתוך דבר שני, כמו ביצה בקן. בדוגמה זו, אנחנו נקנן מערך אחד נוסף בתוך המערך הקיים, ועל ידי כך נייצר מערך דו-ממדי.
המערך המקורי:
$names = array("n1",
"n2",
"n3"
);
לזה נוסיף את הממד השני (מערכים מקוננים או פנימיים):
$names = array("n1" => array(),
"n2" => array(),
"n3" => array()
);
ועכשיו נוסיף פריטים למערכים הפנימיים:
$names = array(
"n1" => array(
"name" => "Moshe",
"number" => 11
),
"n2" => array(
"name" => "Shlomo",
"number" => 6
),
"n3" => array(
"name" => "Gavriel",
"number" => 67
)
);
כדי לגשת לפריט number במערך n2, נעשה את הדבר הבא:
echo $names["n2"]["number"];
והתוצאה: 6
הוספת פריט למערך רב-ממדי נעשית באופן דומה למערך בממד אחד:
$names["n4"] = array("name" => "David", "number" => 9);
כשנדפיס את המערך כולו למסך, באמצעות print_r()
echo "<pre>";
print_r($names);
echo "</pre>";
נקבל את התוצאה הבאה:
Array ( [n1] => Array ( [name] => Moshe [number] => 11 ) [n2] => Array ( [name] => Shlomo [number] => 6 ) [n3] => Array ( [name] => Gavriel [number] => 67 ) [n4] => Array ( [name] => David [number] => 9 ) )
באופן דומה, ניתן להדפיס כל אחד מהמערכים הפנימיים. כך נראה הקוד שמציג את המערך הפנימי השני:
echo "<pre>";
print_r($names["n2"]);
echo "</pre>";
והתוצאה:
Array
(
[name] => Shlomo
[number] => 6
)
עד כאן שיעור מספר 2
אשמח אם לא יגיבו, - במידה ויש שאלות, אז תפתחו נושא חדש שבו יתרכזו כל השאלות והתגובות, כינ אני אשמח כשיהיה אפשר לכתוב במדריכים אז הנושא יועבר לשם