
$arr[] = ... מוסיף ערך בסוף המערך בלי לציין אינדקס.$arr[], ו-PHP ידע שמדובר במערך ויקצה את האינדקסים לבד.foreach ($arr as $value), ומכניס בכל סיבוב את האיבר הנוכחי למשתנה.count.'name' => 'משה', כך שניגשים לערך לפי השם ולא לפי המיקום.foreach ($arr as $key => $value) מציג את שני הצדדים: השם ואת הערך שלו.הטקסט המלא של הדקות הראשונות בהרצאה «קורס PHP - הרצאה 5» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
צהריים טובים, היום אנחנו נדבר על מערכים ב-PHP. מערכים בעצם הם אוספים של ערכים המאוחסנים תחת שם יחיד. למשל, בואו נאמר, טיעונים של קבוצות סטודנטים או כל מיני דברים שאתם יכולים להעלות על הראש, זה כמה שכרגע עולה לי בראש.
אנחנו נלמד כמה שיטות להכלת ערכים במערכים. אוקיי, בואו נמתין עד שקליטו תעלה, נסגור רגע. אני רוצה, וואמפ זה התיקייה של השרת האישי קואל 5, תיקיית PHP, יש קובץ ריק שהכנתי אותו כשהוא ריק כן, הנה, under array class.php בואו נעבוד איתו אוקיי, בואו נשים את המחמטיים של PHP ונראה, השיטה הראשונה לעבודה
בואו נרשום את המשתנה שהוא יהיה בעצם המערך דולר 10 שווה המילה השמורה array לפתוח סוגריים וכאן אנחנו נכיל את הערכים. בואו נאמר, משה, פסיק, יניב, פסיק, תום. בעצם פה יש לי שלוש ערכים, כן, מסוג סטרינג.
אתם רואים, אני מפריד בין כל ערך לערך על ידי הסימן פסיק. פה יצרתי בעצם שלוש ערכים. אז ככה, תסתכלו.
התייחסות לכל איבר במערך מתבצעת על ידי שם המערך וסוגריים מרובעות והאינדקס של איבר המערך. אז בואו נעשה ככה, לדוגמה. אם אני אעשה ככה, אקו, שזה פקודת הדפסה למסך, דולר, סטודנט, אז אמרנו סוגריים מרובעים והאינדקס. שימו לב, האינדקס של המערך מתחיל מאפס.
זאת אומרת, זה 0, 1, 2, כן? אז לכן, אם נרצה להדפיס את האיבר הראשון, אז זה יצטרך להיות ככה. אקו, דולר, סטודנט, בואו ניגש לכאן ונעשה רפרש.
הנה אתם רואים, הנה הערך הראשון במערך, משה. ואם נרצה להדפיס את הערך האחרון, אז בגלל שאנחנו מתחילים באפס, אז הערך האחרון תמיד יהיה פער האיברים במערך, פחות אחד, אז יש לנו בעצם שלוש ערכים, פחות אחד זה שתיים, אז זה יהיה האיבר האחרון.
הנה, תומר, כפי שאתם רואים. אוקיי, זאת בעצם השיטה הראשונה. בואו נראה לדוגמה את השיטה הענייה להחלת ערכים. בואו נכניס את זה להערה שלא נראה, היא לא תפעל אצלך השיטה הראשונה.
השיטה הבאה זה כמעט באופן דומה, אבל ככה, תסתכלו. דולר סטודנט, סוגריים מרובעות, בלי שינדקס, שווה, ואת הערך. ואם אני אעתיק את זה, אני ארשום ניב, ועוד פעם, ארשום פה תומר.
בעצם בניתי את אותו מערך, רק עם שם המערך, סוגריים מרובעות, שווה, ואת הערך. ככה PHP, כשאתם מגדירים לו סוגריים מרובעות, הוא ידע שמדובר במערך ושוב אם אנחנו לדוגמא נדפיס את בוא נאמר את האיבר האמצעי זה 1 וכן זה עובד, אוקיי?
אז זו השיטה הראשונה עם השם השמור הרי, סוגריים ואת הערכים מופרדים עם סיק, השיטה השנייה זה עם סוגריים מרובעות וכמובן ש-PHP תדע שזה מערך ותדאג למספר ולתת לנו אינדק שמתחיל מ-0 זה 0, 1, 2, כן? ובואו ניגש לשיטה השלישית שבעצם אני פה כן נותן
את האינדקס, תסתכלו ככה, אני אפילו מעתיק את כל זה, אוקיי? ואני ארשום פה את האינדקס, 0, 1, 2, אוקיי? זו עוד שיטה שאני גם נותן את האינדקס. למה זה טוב? לדוגמה, אני לא רוצה שמערך יתחיל מ-0, אלא שהוא יתחיל מ-1, אז אני ממש רושם פה 1, 2, 3.
אז שאם אני ארשום לדוגמה אקו דולר סטודנטס 1, אז יהיה מושך. לדוגמה, מי שנוח לו לעבוד עם אינדקס שמתחיל מ-1, לא מ-0.
אז PHP גם מטפלת בעניין הזה. אוקיי, אז פונקציות להדפסת המערך, אז הנה ראינו פה שלוש שיטות, בואו ניתן לנו ככה שיהיה לנו בקוד פה שיטות, בואו נקרא לזולרס אחד, זה לקלטותיים, שיהיה לנו רק את השלוש שיטות, והדפסת ערכי המערך, אז ראינו שיטה אחת, אקו, וכמובן שם המערך עם האינדקס, בואו נפנה לשיטה נוספת, פרינט R, בואו תסתכלו שיטה נחמדה,
נרשום ככה print r ופה אתם רואים mixed expression כאילו ביטוי מעורב אז דולר סטודנט ואני אסביר עוד מעט מה העניין שזה מיקס אוקיי, תסתפק, אגש חזרה ותראו אוקיי, בואו רק נמחק את העניינים בינתיים, אני אראה לכם לדוגמא את שלוש תסתכלו, בפרינט r הוא אומר לכם, תשמעו, קודם כל האובייקט סוג array
והנה האינדקסים, שאינדקס אחד זה המפתח, מה הערך? הוא מראה לכם שווה וחטא, הערך שלו זה מושי. אינדקס שתיים, הערך שלו זה ינון. אינדקס שלוש, הערך שלו זה תומר.
זו השיטה הראשונה, זה נקרא פרינט R. או נעשה פה, יכולנו לעשות בי-אר, תורה חדשה. עוד שיטה להדפסת המערכים, תסתכלו דבר יפה, var-dumb, וזה כבר דבר יותר נחמד, יותר מפורט איתי.
ושימו לב, ועכשיו אתם תבינו מה זה אומר מיקס-אפרשן, ערכים מעורבים. שימו לב בשיטה של var down, תקלו, יותר מפורט, זאת אומרת, קודם כל זה מסוג הרי, ואני אגיד לך כמה אובייקטים גם יש בתוך הרי 3. אוקיי, אני פותח סוגריים מסוצלסלות, סוגר אותם, ואני אסביר לך מה יש בכל דבר ודבר.
קודם כל, האינדקס, המפתח הראשון זה 1, זה האינדקס. תשמע, הוא מצביע על משהו מסוג סטרינג, שהסטרינג הזה מכיל 5 תווים, והנה 2 סטרינג, 5 יניב, הנה 3, מפתח 3 מכיל סטרינג, 5 תומר.
אם אני אגש לדוגמה, ובמקום תומר אני אשים את הערך 2, אוקיי? אז בואו נעשה רפרש, ראיתם? הערך השלישי, המפתח השלישי זה בעצם מסוג אינטג'ר, מסוג מספר שלם של שתי בתים, כן? והוא מכיל את הערך 2, אוקיי?
אני שם פה 10, כן? לא? אתם רואים? אם? מכיל את הערך 10. עכשיו הבנתם מה זה המיקסט אקספרשן, זה בעצם ביטויים מעורבים. למה? כי אני בעצם פה יכול לערבב סטרינגים עם אינטג'ר.
אז זו השיטה השנייה, נקראת var_dumb, אז ראינו printr בגישה הזאת, var_dumb זה יותר מפורט, זה לבדיקות לדוגמא אם תרצו לעשות, ונלך לשיטה הנוספת, בואו רק נעביר לר, וניגש לשיטה שנקראת for each, אז ככה, ניתן להדפיס את הערכים בעצם עם פונקציה מאוד נחמדה שנקראת for, אוקיי,
אז ככה, בואו נראה איך זה עובד, בואו ניקח את ה-foreach, אז קודם כל שימו לב, בואו אני רק אפתח שוקריים כדי לראות לכם מה הוא דורש, הוא לא אומר מה הוא דורש, קודם כל את שם המערך, דולר סטודנט, אז שימו לב, אני עושה ככה, דולר value, אז ככה, הפקודה הזאת בעצם מציבה את ערכו של האיבר הנוכחי, היא שולפת מתוך המערך את האיבר הנוכחי, היא שולפת את זה מפה, והיא מציבה את זה במשתנה הזה, ב-value,
ובכל איטרציה מתקדמים לעבר הערך הבא במערך. אז בואו נעשה ככה, ונרשום פה אקו, דולר, וליו, פרש, הנה, משה יניב, ניתן אפילו קצת שיהיה עם יותר רווח, משה יניב, אוקיי? אז בעצם אני שולף כל ערך, בכל איטרציה נשלף ערך מתוך המערך, ונכנס לדולר וליו.
זו השיטה הנוספת, השלישית, להדפסת המערכים, אוקיי? שלוש שיטות, אפשר כמובן גם, כן, וזה כמובן דבר פשוט, תלמדו לאל, לדוגמה עם while או עם for, לעשות את זה, כן, שם דוגמה קצרה, for דולר i, סליחה, דולר i שווה, אם אנחנו נרצה כמובן להדפיס את student 3, 3, סליחה, שים לב שצריך להתחיל מ-1, כן, אז 1, הדפסתי, כל עוד דולר i, סליחה, i, קטע, עכשיו
תסתכלו, קטן שווה, עכשיו יש פונקציה שנקראת COUNT. COUNT בעצם אומרת לי כמה ערכים יש בתוך המערך. אז אם אני ארשום ככה COUNT, ואתם רואים מיקס וואר, אני אקח דולר פי, נקודה פסיק, כן, ופה יהיה בעצם, זה הקוד שהולך להופיע בתוך גוף עלולה, אז אני רוצה לקדם את דולר איי, כן, וכאן אני יכול לעשות דבר כזה,
RECO, ונרשום דולר 3 במקום דולר פסיק, הנה אותו הדבר, משה יניב, כן, אז זו עוד שיטה בעזרת הלולה 4. אוקיי, עד לפה זה מערכים בעצם, ועם האינדקסים הרגילים שאתם מכירים, 0, 1, 2, או מה שזה לא יהיה.
ב-PHP יש אפשרות לעשות מערכים משוייכים, משוייכים, באנגלית, באנגלית סליחה, Associative Arraying, מה זה אומר? כן, זה אומר שאני יכול בעצם ליצור אינדקס שבעצם הוא יהיה בתור מפתח שאני יוצר אותו, לא ככה, לדוגמה, שהמחשב נותן לי ברירת מחדל 0, 1, 2, או כמו שהתחלתי פה עם מספר 1, 2, 3.
אני יכול, לדוגמה, שהאינדקס הזה יהיה לדוגמה מחרוזת. זה מפתח שאני יוצר. בואו נשים לב. בואו ניקח עוד פעם, תגדיר.
דולר, סטודנט, 4, שווה, array, אוקיי? עכשיו, תראו, פה אני שם בעצם את האינדקס, את המפתח. בואו נאמר name, ואתם זוכרים, אם ניגש פה, אתם זוכרים שהוא הראה לכם שזה כביכול המפתח והוא מצביע לערך מסוים?
אז אותו הדבר אנחנו עושים גם פה. בואו, ואתה תצביע שווה, ועושים את הסימן הזה, את הגדול, כן? שווה, ובואו ניתן פה את הערך. אני רוצה לתת ש...
כן, פסיק, עוד לדוגמה מפתח h, כן, והוא מצביע לערך, בואו נאמר, ב-6, פסיק, עוד מפתח לדוגמה great, הוא מצביע לערך 90, אוקיי?
הנה, יצרתי פה בעצם מערך עם מפתחות משוייכים. הדפסה פשוטה, כן? ECHO, דולר, סטודנט, 4. אני בא לפה ואני רושם פה את השם של האינדקס.
תספיס לי, משה, שמתם לב? בואו נעשה את ה-PrintBR, יותר בנה. הנה, משה. עשיתי דוגמה לפנות לאינדקס Age, תספיס לי את הערך שיש לי באינדקס Age.
הנה, איך עובדים עם 4Each? שימו לב, הלולה ה-for each היא מקלה מאוד את כל העניין. אז ככה, for each, כמובן את שם המערך, דולר סטודנט 4. עכשיו, אני עושה ככה, אז דולר קי ולמה הוא מצביע? לדולר וליו, כן? שימו לב, דולר קי ודולר וליו אלו הם משתנים שרירותיים.
יכלתי לרשום פה גם דולר איקס ודולר וואי. כאן זה המשתנה שמכיל בעצם את הערכים. עכשיו בואו נשים לב איך אנחנו מצביעים, אוקיי? אוקיי, שים לב, הנה בבקשה, הנה הכי name, והנה הערך value, משה, הנה הכי age, והנה הערך שלו, והנה הכי grade, והנה הערך שלו, אוקיי, עכשיו נלמד דבר אחרון על דבר שנקרא list וeach, אז תסתכלו, בואו נעשה פה רק עוד BR,
והשיטה האחרונה שנלמד היום על המערכים ואז נחזור לפרויקט של החנות הווירטואלית ונראה איך זה משתלב בפנים יש את ה-each ו-list אז תסתכלו אז אפשר גם להשתמש בלולאת while ובטח אתם מכירים כבר את לולאת while כדי לעבור על המערך השלם בעזרת הפונקציה each אז בואו רק אני אכתוב את הסינטקט ואז אני אסביר מה זה בעצם עושה אז תסתכלו while מסביר את הכל list בוא נאמר דולר מייק סיק, דולר מייוואל, ונסביר מה זה
ליסט ועצור, שווה איטש ודולר סטודנט, ובואו נעשה פה ככה, אקו קי, דולר מייק, זה היה שמתי בליסט, ובואו נרשום בדוגמא רווח, ואליו זוטאי דולר מייוואל, ומייד אסביר מה בעצם פה קורה.
ליסט זה בעצם פונקציה שבה אני מגדיר רשימה של משתנים. הנה, פה הגדרתי שתי משתנים, מייקי, מייבא. צריך לתת ערכים למשתנים האלה, לליסט. מה קורה?
איצ' אומר דבר כזה, בכל איטרציה תמשוך לי ערך מתוך הסטודנט, נגיד, משתנה סטודנט. אוקיי, פה אתה תשים לי בבקשה את המפתח, זה הערך הראשון שנשלף, כפי שראינו פה.
הערך הראשון שנשלף זה המפתח. ואחריו את הערך, אוקיי? זאת אומרת, אייץ' דולר סטודנט 4, בהתחלה הוא שולף לי מפתח וערך, המפתח נכנס לפה, והערך נכנס לפה, והנה, תסתכלו איזה יופי, בעיקרון עכשיו יש לי בתוך משתנים, מייקי ומייבאל, את הנתונים הללו.
בואו נעשה רפרש. רו, אס, רגע, רגע, רינט, אכן, הנה, יש לי