Menu

PHP array_push(): Cara Menambah Elemen ke Array

array_push($arr, $value) menambahkan satu nilai atau lebih ke akhir array; $arr[] = $value melakukan hal yang sama untuk satu nilai dan lebih cepat. Pelajari cara menambah elemen di akhir, di awal, atau di tengah array, menambah key dan nilai, serta menghindari bug klasik nilai kembalian.

Halaman ini dilengkapi editor yang bisa dijalankan. Edit, jalankan, dan lihat output-nya seketika.

array_push($arr, $value) menambahkan sebuah nilai ke akhir array. Untuk satu nilai, singkatan $arr[] = $value; melakukan hal yang sama tanpa memanggil fungsi, dan cara inilah yang dipakai sebagian besar kode PHP. Keduanya mengubah array secara langsung.

array_push() menerima array lewat referensi, jadi fungsi ini mengubah variabel yang kamu berikan. Nilai kembaliannya adalah jumlah elemen yang baru, dan boleh kamu abaikan.

array_push vs $arr[] =

Pakai $arr[] = $value untuk satu nilai: lebih pendek dan tidak memanggil fungsi, yang terasa bedanya di dalam loop besar. Pakai array_push() saat kamu punya beberapa nilai untuk ditambahkan dalam satu pernyataan, atau sebuah daftar nilai yang ingin di-spread.

$arr[] = juga bekerja pada variabel yang belum ada: PHP akan membuat array-nya. array_push() butuh array yang sudah ada: pada variabel yang belum didefinisikan, fungsi ini melempar TypeError: array_push(): Argument #1 ($array) must be of type array, null given.

Menambah key dan nilai

array_push() hanya menambahkan nilai dengan key integer berikutnya. Untuk menambah key bernama, isi langsung ke key itu. Untuk menambah beberapa pasangan sekaligus, pakai += (mempertahankan key yang sudah ada) atau array_merge() (nilai baru yang menang).

Perbedaan antara + dan array_merge() saat key-nya bentrok dibahas di halaman array_merge.

Menambah di awal: array_unshift

array_unshift($arr, $value) menyisipkan nilai di awal. Key integer dinomori ulang sehingga nilai baru mendapat indeks 0; key string tetap seperti semula. Sama seperti array_push(), fungsi ini menerima beberapa nilai dan mengembalikan jumlah elemen yang baru.

Untuk menaruh pasangan bernama di urutan pertama, buat array baru: $menu = ['login' => '/login'] + $menu;.

Menyisipkan di posisi tertentu

array_splice($arr, $offset, 0, $values) menyisipkan tanpa menghapus apa pun: fungsi ini mulai di $offset, menghapus 0 elemen, lalu menaruh nilai baru di sana. Key integer setelah titik sisip dinomori ulang.

array_splice() juga bisa menghapus dan mengganti elemen; halaman tentang menghapus elemen menunjukkan bentuk-bentuk itu.

Menambahkan array lain

array_push($a, $b) menambahkan $b sebagai satu elemen bersarang, yang jarang sesuai keinginanmu. Untuk menambahkan nilai-nilai $b satu per satu, spread nilainya, atau buat array baru dengan sintaks spread atau array_merge().

Kesalahan umum: menyimpan nilai kembalian

array_push() mengembalikan angka, yaitu jumlah elemen yang baru. Menyimpan angka itu kembali ke variabel array mengganti array-mu dengan integer, dan array_push() berikutnya pada variabel itu akan melempar TypeError.

Hal yang sama berlaku untuk array_unshift() dan untuk sort(), yang mengembalikan true. Fungsi yang mengubah array secara langsung mengembalikan status, bukan array-nya.

Pertanyaan yang sering diajukan

Apa bedanya array_push dan $arr[] di PHP?

Keduanya menambahkan ke akhir array. $arr[] = $x; menambahkan satu nilai tanpa memanggil fungsi, jadi cara ini yang biasa dipakai dan sedikit lebih cepat. array_push($arr, $a, $b, $c) berguna saat kamu menambahkan beberapa nilai sekaligus, dan fungsi ini mengembalikan jumlah elemen yang baru.

Bagaimana cara menambah key dan nilai ke array di PHP?

Isi langsung ke key-nya: $arr['color'] = 'blue';. array_push() tidak bisa melakukannya karena selalu memakai key integer berikutnya. Untuk menambah beberapa pasangan sekaligus, pakai $arr += ['a' => 1, 'b' => 2]; atau array_merge().

Bagaimana cara menambah elemen di awal array di PHP?

Pakai array_unshift($arr, $value). Fungsi ini menomori ulang key integer sehingga nilai baru mendapat indeks 0; key string tetap seperti semula.

Kenapa array saya berubah menjadi angka setelah array_push?

Karena array_push() mengembalikan jumlah elemen yang baru, bukan array-nya. Menulis $arr = array_push($arr, 'x'); mengganti array dengan angka itu. Panggil fungsinya di barisnya sendiri: array_push($arr, 'x');.

Ilustrasi bahasa pemrograman di Coddy

Belajar coding dengan Coddy

Mulai