המידע המוצג במערכים יכול להיותשונים בסוג הערכים ובגודלם, ולא תמיד ניתן לקבוע מראש את מספר האלמנטים. התכנות המודרנית, במיוחד בגירסה המבוזרת, מאפשרת יצירת מבני נתונים מורכבים שתכולתם ומאפייניהם ניתנים לקביעה דינמית בנקודת זמן בלתי מוגבלת כתוצאה מפעולות או אירועים שונים ברצף אחר.
לא תמיד בשלב הפיתוח, אתה יכול לחזות את תהליך הפעולה, לספק את כל האפשרויות האפשריות להצגה ושימוש במידע, את הדינמיקה של המראה שלהם ואת השימוש.
גיבוש התחביר של foreach, הציע PHP שניאפשרות לגישה לפריטים. שניהם אינם תלויים בסוג המפתח או בסוג הערך וניתן לחיקוי על ידי הלולאה הרגילה. מוצע לטפל במערך כאוסף של אלמנטים, שמספרם אינו מוגדר בתחילה. מערך יכול להיווצר על לטוס, עם או בלי מפתחות. במערך, אלמנט ניתן למחוק, המפתחות יכולים להיות אסוציאטיביים ויצרו כברירת מחדל.
foreach ($ aArrayName כ- $ xValue) {body of the loop}
בנייה כזו דורשת לולאה foreachללכת דרך כל האלמנטים ברציפות. בגוף הלולאה, המשתנה $ xValue יקבל את כל הערכים של מערך aArrayName $ בסדר שבו הם נוספו. ערכי מפתח אלמנט לא יהיו זמינים.
foreach ($ aArrayName כ- $ xKey => $ xValue) {body of the loop}
גם כאן, על ידי ביצוע foreach לבנות, PHPיסרוק את כל התוכן של המערך, אך בגוף הלולאה, הערכים המתאימים יילקחו כמשתנה $ xValue, והמשתנה $ xKey - המפתח של האלמנט.
בתוך PHP foreach תציע תוכן בבסדר שבו הוסיפו את האלמנטים, אבל אם היו מספר תוספות / מחיקות במהלך היווצרות המערך, ומשהו התווסף עם המקשים, ומשהו ללא, אז עדיף לעבוד עם מערך לא מתוך רצף של אלמנטים אלמנטים, אבל מבוסס על התוכן שלהם או על המפתחות.
בשל סיבות אובייקטיביות שונותרצף בתוך המערך לא יכול להיות מכובד ו / או לא יכול להיות בעל חשיבות מיוחדת, אבל זה לא צריך להיות מכוונת בכל דרך שהיא. בבעיות פשוטות, על ערכות נתונים טריוויאלי, אין בעיות, ואת האלגוריתם יכול להיות מוגדר עבור עיבוד רציף, אבל כאשר תהליך היצירה / עריכת מערך מושפע מגורמים רבים, יש להתמקד בתוכן.
מנקודת המבט של המושג הקיים, אפילו בלי לקחת בחשבון את שפות דומות ללא תנאי, מערך PHP foreach חייב להיות מתוכנן באופן עצמאי תוך לקיחה בחשבון את המשימה בטון אמיתי.
תרגול כאשר יש נתון, וזה אחד יש אינדקס באוסף הכללי שלו דומה על פי קריטריון מסוים - זה היה אתמול.
המדד הפך למפתח, והמערך התגבשמערך אסוציאטיבי. כלומר, המפתח איבד את הייחודיות הרצופה שלו (זה היה בדרך כלל עקבי: 0, 1, 2, ... n) והפך לערך גם הוא, אבל ערך פשוט (כלומר, מפתח) הקשור לערך האמיתי (כלומר, התוכן של האלמנט). זה היום, זה נכון, אבל לא מושלם.
לכן לולאה foreach נחשב על ידי PHP כחלופה לולאה קבוע כי הוא מכוון מערכים רגילים. זה בעיקר, וזה מאוד חשוב, כי זה מרמז נכונות אמיתית של רכיבי מערך, כמו גם את המפתחות שלהם!
ראשית היה אלמנט, אז שני אלמנטים ... אז היה מגוון של אלמנטים לולאה לאורך מגוון של אלה:
עבור ($ i = 0; $ i <count ($ aArrayName); $ i ++) {
גוף העיבוד של כל $ aArrayName [$ i]
}
ואז אלמנט במקום 0 חסר, 1, 2, ... n היה שם משלו - המפתח ולאחר מכן מערכים הפך אסוציאטיבי, ואז לולאה foreach היה צורך - "לולאה עבור כל אחד":
foreach ($ aArrayName כ- $ xKey => $ xValue) {
את גוף העיבוד של כל $ aArrayName [$ xKey] או $ xValue כי הוא זהה
}
עכשיו הגיע הזמן לבוא למערך עם היסודות הנכונים, כלומר, אלה שהם בעצמם. הם עצמם יודעים את האינדקס שלהם, התוכן שלהם, את מקומם ברצף, נוטים להציג את רצף הבחירה שלהם ואת האצלת כל האפשרויות שלהם למערך המכיל אותם.
מערכים נכונים כאלה יעובדובכוחות עצמם. צורך מיוחד באמצעות מחזורי רגיל מחזורים עבור כל פשוט לא יהיה. באופן רשמי, התחביר והסמנטיקה כבר מאפשרים, השאלה היא רק האינרציה של התודעה של היזם.
</ p>