מיון ופעולות על מערכים בשפת PHP

מיון מערכים ופעולות עליהם הוא דבר נחוץ מאוד בתיכנות בשפת PHP, חשוב להכיר את הפעולות והמיונים במיוחד לאחר שעברנו על מערכים בשפת PHP במאמר הקודם.

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

  • sort() – מסדר וממיין את המספרים בסדר עולה או את המחרוזות על פי ה-א"ב.
  • rsort() – ההפך מ sort, מסדר את המספרים בסדר יורד, או את המחרוזות על פי ה-א"ב ההפוך.

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

  • asort() – מסדר וממיין מערכים אסוציאטיביים על פי הערך (Value), מספרים בסדר עולה ומחרוזות על פי ה-א"ב.
  • ksort() – כמו asort רק על פי מפתח, מסדר וממיין מערכים אסוציאטיביים על פי המפתח (Key), מספרים בסדר עולה ומחרוזות על פי ה-א"ב.
  • arsort() – מסדר וממיין מערכים אסוציאטיביים על פי הערך (Value), מספרים בסדר יורד ומחרוזות על פי ה-א"ב ההפוך.
  • krsort() – כמו arsort רק על פי מפתח, מסדר וממיין מערכים אסוציאטיביים על פי המפתח (Key), מספרים בסדר יורד ומחרוזות על פי ה-א"ב ההפוך.
  • count() – סופרת את מספר האיברים במערך ומחזירה את התוצאה, הספירה מתחילה מ 1 ולא מ 0. אין להתבלבל בין מספר האיברים שמתחיל מ 1 לבין מספר האינדקסים שמתחיל מ 0.
  • array_key_exists() – למערכים אסוציאטיביים, פעולה זו מחזירה אמת במידה והמפתח (Key) קיים במערך, אחרת שקר.
  • in_array() – למערכים אסוציאטיביים ולכאלה שלא, הפעולה מחזירה אמת במידה והערך קיים במערך, אחרת שקר.

פונקציית sort

מסדר וממיין את המספרים בסדר עולה או את המחרוזות על פי ה-א"ב.

פונקציית rsort

ההפך מ sort, מסדר את המספרים בסדר יורד, או את המחרוזות על פי ה-א"ב ההפוך.

פונקציית asort

מסדר וממיין מערכים אסוציאטיביים על פי הערך (Value), מספרים בסדר עולה ומחרוזות על פי ה-א"ב.

פונקציית ksort

כמו asort רק על פי מפתח, מסדר וממיין מערכים אסוציאטיביים על פי המפתח (Ket), מספרים בסדר עולה ומחרוזות על פי ה-א"ב.

פונקציית arsort

מסדר וממיין מערכים אסוציאטיביים על פי הערך (Value), מספרים בסדר יורד ומחרוזות על פי ה-א"ב ההפוך.

פונקציית krsort

כמו arsort רק על פי מפתח, מסדר וממיין מערכים אסוציאטיביים על פי המפתח (Key), מספרים בסדר יורד ומחרוזות על פי ה-א"ב ההפוך.

פונקציית count

סופרת את מספר האיברים במערך ומחזירה את התוצאה.

פונקציית array_key_exists

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

פונקציית in_array

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

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

מערכים בשפת PHP

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

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

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

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

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

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

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

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

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

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

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

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

סוגי משתנים בשפת PHP

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

integerמשתנה מסוג מספר.
objectמשתנה מסוג אובייקט.
floatמשתנה מסוג מספר עשרוני.
stringמשתנה מסוג מחרוזת.
arrayמשתנה מסוג מערך.

מספר שלם (Integer המוכר כ – int):

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

מספר ממשי ( Float):

מספר ממשי הוא מספר עם נקודה עשרונית:

ניתן גם להשתמש באות e או E כדי להגדיר מספר ממשי באופן הבא –

מחרוזת (String):

מחרוזת היא רצף של תווים שיוצרים משפט אחד. כך ניתן להגדיר משתנה מסוג מחרוזת –

ניתן גם להשתמש בגרש יחיד להגדרת המשתנה –

מערך (Array):

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

ניתן לגשת לכל ערך במערך לפי המפתח שלו באופן הבא –

הפלט יהיה –

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

אם רוצים למחוק איבר ממערך אפשר להשתמש בפונקציה ()unset באופן הבא –

אלו הם סוגי המשתנים העיקריים שיש, ומומלץ לדעת על קיומם.

PHP לא דורשת מהמתכנת לאתחל משנים, אם כי מומלץ מאוד לאתחל אותם בעת יצירתם.

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

משתנים קבועים בשפת PHP

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

  • אין צורך לשים $ לפני שם הקבוע
  • קבוע ב PHP יכול להכיל אותיות אנגליות, ספרות או קו תחתון בלבד.
  • שם של קבוע ב PHP יכול להתחיל בקו תחתון או באות בלבד.
  • קבוע ב PHP הוא case-sensitive (קיימת הבחנה בין אותיות גדולות לאותיות קטנות בשמות של קבועים).

דוגמה להגדרה של קבועים –

ומה שיודפס לנו על המסך:

משתנים גלובאלים בשפת PHP

ישנם מספר משתנים גלובאלים שימושיים מאוד:

POST_$הנתונים שמעוברים בשיטה שנקראת POST, נלמד מאוחר יותר לעבוד עם זה.
GET_$הנתונים שמעוברים בשיטה שנקראת GET, גם נלמד מאוחר יותר.
COOKIE_$נתונים שמספקים מידע על עוגיות שנמצאות במחשב הלקוח, גם נלמד מאוחר יותר.
SESSION_$משתנה זה נשמר בכל דף ודף שנעבור, עד שלא יתנתק ה- Session, כמובן נלמד בהמשך.
FILES_$נותן מידע על קבצים והעברת לשרת, ינתנו דוגמאות בהמשך.
$_SERVER[PHP_SELF]משתנה סרבר המכיל את הכתובת של הדף הנוכחי.

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

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

משתנים בסיסיים בשפת PHP

משתנים ? אם לא למדתם בעבר שפת תכנות כלשהי, זה לא מוכר לכם.

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

כדי להכריז על משתנה נכתוב דולר ($) ואז את שם המשתנה, לאחר מכן יבוא שווה (=) ואז את התוכן של המשתנה:

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

מה שעשינו בדוגמא למעלה, יצרנו משתנה בשם variable ושמנו בתוכו את המספר 5, זה נקרא השמה – השמת ערך במשתנה. בדוגמא השניה יצרנו משתנה בשם website ושמנו בו מחרוזת שהוא כתובת האתר. כעת, אם נכתוב מתחת להכרזת המשתנים פקודת echo ואז את שם המשתנה, הערך יודפס לנו:

דוגמא נוספת:

הפלט שיודפס הוא 22, שמנו שתי ערכים בתוך שתי משתנים, $num1 ו-$num2 . לאחר מכן סיכמנו את שתי המשתנים לתוך משתנה בשם sum$, והצגנו אותו כפלט על המסך.

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

אלו שלמדנו C או CPP יבינו את הדוגמא, אחרים צריכים לחשוב על הזיכרון כחבילת שוקולד, כל קוביה מחולקת ל 2, החלק הראשון הוא הערך והחלק השני הוא הכתובת של הקוביה בתוך חבילת השוקולד שלנו. בהתחלה לקחנו קוביה כלשהי בכתובת כלשהי ושמנו בערך שלה 10, קראנו לכל הקוביה (שמכילה בתוכה את הכתובת ואת הערך) num. לאחר מכן, יצרנו משתנה חדש בשם var ששמנו בתוכו את הכתובת של הקוביה בשם num. לאחר מכן הדפסנו את הערך של var, מכיוון שהערך של var הוא הכתובת של num והערך של num הוא 10, יודפס לנו 10 (פקודת echo מדפיסה ערכים בלבד ולא כתובות), לאחר מכן ביצענו השמה למשתנה num עם ערך אחר, כיוון שהכתובות זהות ורק הערך שונה, פקודת echo תבצע שוב את המרדף אחר הערך ותדלג מהערך של var שהוא בעצם כתובת לערך של num שהוא 7 וזה מה שיודפס לנו.

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

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

צעדים ראשונים בשפת PHP

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

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

"שרת ביתי ???", כן, אין מה לפחד. ראשית נתחיל בכך שתורידו WAMP זוהי תוכנה המכילה את כל הדברים שצריך כדי להריץ קבצי PHP כולל PHP הגרסא העדכנית, Apache ו SQL בגרסאות עדכניות לתאריך ההורדה.

הסבר התקנת WAMP SERVER

כמו שהסברנו מעלה, WAMP מתקינה לכם את כל הרכיבים הדרושים להרצת קבצי PHP.

ההתקנה היא כמו כל התקנה רגילה, לוחצים Next ונגיע לחלון שבו נבחר את כונן ההתקנה – ברירת המחדל: C:\wamp, אפשר לשנות, זה לא מזיק להשאיר את זה. נמשיך עם ה Next, נגיע לחלון שישאל אותנו האם אנחנו רוצים שה WAMP יעלה עם עליית המחשב, כל אחד יסמן איך שנוח לו. נמשיך עם ה Next עד שנגיע ל Install לאחר מכן נתבקש להגדיר דפדפן ברירת מחדל, נגדיר מה שנוח לנו ונחכה עד שההתקנה תסתיים.

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

כאשר האייקון בצבע ירוק – השרת רץ. אחרת (אדום או כתום\צהוב) השרתים מכובים וצריך להדליק אותם – במקרה כזה נלחץ על האייקון ואז start.

כאשר ה WAMP רץ כראוי אפשר להתחיל לכתוב קוד PHP ולהריץ אותו :).

נלך לתיקיה שהתקנו בה את ה WAMP, כאלה שלא שינו את זה בעת ההתקנה זה עדיין נמצא ב C:\wamp, נכנס לתיקיית www ושם נכתוב את קבצי ה PHP שלנו, על מנת לראות את הקבצים המורצים ניכנס ל: http://localhost/FILENAME.php כאשר FILENAME הוא שם הקובץ שנרצה להריץ.

מתחילים את הצעד הראשון .. אולי השני ?

ניצור באמצעות הכתבן קובץ חדש ונשנה את שמו ל – index.php, יש לשים לב לשנות את הסיומת ל php. לאחר מכן נערוך את מה שכתוב שם ונכתוב בו את הקוד הבא:

המבנה הוא פשוט, תג פותח, תוכן, תג סוגר.

הצגת פלט

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

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

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

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

  • אציין שאם למדתם HTML היטב, תוכלו לשלב קוד PHP בתוך דפי HTML. חשוב שסיומת הקובץ תיהיה .php ולא .html, זה נראה ככה:

הערות ב PHP

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

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

שפת PHP – הקדמה

 

תולדות השפה, מאפייניה וטעימת קוד