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');.