תחי ישראל - אין לנו ארץ אחרת

תחי ישראל -אין לנו ארץ אחרת

מערכים של PHP

מחבר:
בתאריך:

מערכים הם סוג של משתנה שיכול להחזיק מספר פריטים ביחד. כך נראה מערך שמחזיק שמות של אנשים.

$names = array("Moshe", "Shlomo", "Gavriel");

 

מערך מבוסס אינדקס

 

המערך הפשוט ביותר הוא מערך מבוסס אינדקס, וזה המבנה שלו.

$שם_המערך = 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
)

המדריך הבא בחירה בין אפשרויות else, if וגם elseif מסביר את הנושא של משפטי תנאי

 

לכל מדריכי ה-PHP

 

אהבתם? לא אהבתם? דרגו!

0 הצבעות, ממוצע 0 מתוך 5 כוכבים

 

 

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

למרות האמור לעיל, ומתוך רצון טוב, אם נתקלת בקשיים ביישום הקוד באתר מפאת מה שנראה לך כשגיאה או כחוסר עקביות נא להשאיר תגובה עם פירוט הבעיה באזור התגובות בתחתית המדריכים. זה יכול לעזור למשתמשים אחרים שנתקלו באותה בעיה ואם אני רואה שהבעיה עקרונית אני עשוי לערוך התאמה במדריך או להסיר אותו כדי להימנע מהטעיית הציבור.

שימו לב! הסקריפטים במדריכים מיועדים למטרות לימוד בלבד. כשאתם עובדים על הפרויקטים שלכם אתם צריכים להשתמש בספריות וסביבות פיתוח מוכחות, מהירות ובטוחות.

המשתמש באתר צריך להיות מודע לכך שאם וכאשר הוא מפתח קוד בשביל פרויקט הוא חייב לשים לב ולהשתמש בסביבת הפיתוח המתאימה ביותר, הבטוחה ביותר, היעילה ביותר וכמובן שהוא צריך לבדוק את הקוד בהיבטים של יעילות ואבטחה. מי אמר שלהיות מפתח זו עבודה קלה ?

השימוש שלך באתר מהווה ראייה להסכמתך עם הכללים והתקנות שנוסחו בהסכם תנאי השימוש.

הוסף תגובה חדשה

 

 

ענה על השאלה הפשוטה הבאה כתנאי להוספת תגובה:

איך אומרים בעברית אינטרנט?

 

תמונת המגיב

שוע בתאריך: 06.06.2021

אלוף האלופים.
מדריך מוסבר ומדויק

תמונת המגיב

ידידיה בתאריך: 08.04.2022

בתוצאה של השורה השניה יש טעות - כמדומני. [יש אות מיותרת]. בהזדמנות זו אודה על המדריכים המצויינים שלך.