Menu

array_push() ב-PHP: הוספת איברים למערך

array_push($arr, $value) מוסיפה ערך אחד או יותר לסוף מערך; $arr[] = $value עושה את אותו הדבר לערך אחד ומהיר יותר. למדו איך מוסיפים לסוף, להתחלה או לאמצע של מערך, מוסיפים מפתח וערך, ונמנעים מהבאג הקלאסי של ערך ההחזרה.

בדף הזה יש עורכים שאפשר להריץ - לערוך, להריץ ולראות את הפלט מיד.

array_push($arr, $value) מוסיפה ערך לסוף מערך. לערך יחיד, הקיצור $arr[] = $value; עושה את אותה עבודה בלי קריאה לפונקציה, ובו משתמש רוב קוד ה-PHP. שתי הדרכים משנות את המערך במקום.

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

array_push מול $arr[] =

השתמשו ב-$arr[] = $value לערך אחד: זה קצר יותר וחוסך קריאה לפונקציה, וזה מצטבר בתוך לולאה גדולה. השתמשו ב-array_push() כשיש לכם כמה ערכים להוסיף בפקודה אחת, או רשימת ערכים לפרוס פנימה.

$arr[] = עובד גם על משתנה שעוד לא קיים: PHP יוצרת את המערך. array_push() צריכה מערך קיים: על משתנה לא מוגדר היא זורקת TypeError: array_push(): Argument #1 ($array) must be of type array, null given.

הוספת מפתח וערך

array_push() מוסיפה ערכים רק עם המפתח השלם הבא. כדי להוסיף מפתח עם שם, הציבו אליו. כדי להוסיף כמה זוגות בבת אחת, השתמשו ב-+= (שומר על מפתחות קיימים) או ב-array_merge() (נותן לערכים החדשים לנצח).

ההבדל בין + ל-array_merge() כשמפתחות מתנגשים מוסבר בעמוד array_merge.

הוספה להתחלה: array_unshift

array_unshift($arr, $value) מכניסה בהתחלה. המפתחות השלמים ממוספרים מחדש כך שהערך החדש מקבל את האינדקס 0; מפתחות מחרוזת נשארים כמו שהם. כמו array_push(), היא מקבלת כמה ערכים ומחזירה את המספר החדש.

כדי לשים זוג עם שם ראשון, בנו מערך חדש: $menu = ['login' => '/login'] + $menu;.

הכנסה במיקום מסוים

array_splice($arr, $offset, 0, $values) מכניסה בלי להסיר שום דבר: היא מתחילה ב-$offset, מסירה 0 איברים ושמה שם את הערכים החדשים. המפתחות השלמים שאחרי נקודת ההכנסה ממוספרים מחדש.

array_splice() יכולה גם להסיר ולהחליף איברים; העמוד על הסרת איברים מראה את הצורות האלה.

הוספת מערך אחר

array_push($a, $b) מוסיפה את $b כאיבר מקונן אחד, ולעיתים רחוקות זה מה שרוצים. כדי להוסיף את הערכים של $b אחד אחד, פרסו אותם, או בנו מערך חדש עם תחביר הפריסה או עם array_merge().

טעות נפוצה: הצבת ערך ההחזרה

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

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

שאלות נפוצות

מה ההבדל בין array_push ל-$arr[] ב-PHP?

שתיהן מוסיפות לסוף. $arr[] = $x; מוסיף ערך אחד בלי קריאה לפונקציה, ולכן זו הבחירה הרגילה והיא מעט מהירה יותר. array_push($arr, $a, $b, $c) שימושית כשמוסיפים כמה ערכים בבת אחת, והיא מחזירה את מספר האיברים החדש.

איך מוסיפים מפתח וערך למערך ב-PHP?

הציבו למפתח: $arr['color'] = 'blue';. array_push() לא יכולה לעשות את זה כי היא תמיד משתמשת במפתח השלם הבא. כדי להוסיף כמה זוגות בבת אחת, השתמשו ב-$arr += ['a' => 1, 'b' => 2]; או ב-array_merge().

איך מוסיפים איבר לתחילת מערך ב-PHP?

השתמשו ב-array_unshift($arr, $value). היא ממספרת מחדש את המפתחות השלמים כך שהערך החדש מקבל את האינדקס 0; מפתחות מחרוזת נשמרים כמו שהם.

למה המערך שלי הופך למספר אחרי array_push?

כי array_push() מחזירה את מספר האיברים החדש, לא את המערך. כתיבה של $arr = array_push($arr, 'x'); מחליפה את המערך במספר הזה. קראו לה בשורה משלה: array_push($arr, 'x');.

איור של שפות התכנות ב-Coddy

ללמוד תכנות עם Coddy

להתחיל