מערכים בשפת PHP

מערך הוא אחד ממבני הנתונים שיצא לכם להשתמש בו הכי הרבה (טוב אולי אני מגזים.. אבל מבטיח לכם שתשתמשו בו). זוכרים את החבילת שוקולד מהמאמר על המשתנים בסיסיים בשפת PHP ?. תחשבו על מערך כאל חבילת שוקולד ארוכה, מלא תאים בזיכרון (קוביות שוקולד) אחד אחרי השני, לכל קוביה יש כתובת וערך ונוסף לכך אינדקס (מיקום) בין כל תאי הזיכרון שלנו. לכל קוביה קוראים איבר במערך ולכל איבר קוראים על ידי האינדקס שלו (אפשר להגיד גם – המפתח שלו), האינדקס מתחיל מ 0. כאשר נקרא לאיבר באמצעות האינדקס שלו, נקבל את הערך שיושב באותו הכתובת ששייכת לאינדקס. לרוב נשתמש במערך כדי לשמור כמות רבה של נתונים או לייצג ערכים מסויימים למספרים חד חד ערכים (מספרים שלא חוזרים על עצמם שוב, ייחודים – איך ? באמצעות האינדקס!).

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

תחביר המערך ודרכי יצירתו

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

מערך אסוציאטיבי

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

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

מערכים דו מימדיים

מערך דו מימדי או "מטריצה", הוא בעצם מערך חד מימדי שהערך בכל תא הוא מערך חד מימדי כמו שהכרנו עד עכשיו, ניתן לומר שזה מערך של מערכים, דוגמא:

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

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

כפי שאמרתי בתחילת המאמר, PHP מייחצנת לנו שפע של פונקציות לעבודה עם מערכים, את הפונקציות נכיר במאמר הבא ונעסוק במיון ופעולות על מערכים בשפת PHP, אם הבנתם את הכל עד עכשיו, אתם מוזמנים להתקדם הלאה 🙂