Pada artikel ini, Anda akan mempelajari cara menghapus elemen dari array menggunakan PHP. Kami akan membahas berbagai metode untuk melakukannya pada berbagai jenis array dengan banyak contoh
Sebelum melangkah lebih jauh, mari kita bahas bagaimana ketiga fungsi yang akan kita perlukan nanti bekerja
Fungsi unset()
Fungsi unset() adalah fungsi bawaan dalam PHP yang digunakan untuk menghapus/menghancurkan variabel yang diberikan atau sekumpulan variabel.
Sintaksis
tidak disetel (variabel,. );
Parameter
Fungsi membutuhkan setidaknya satu variabel sebagai parameter, tetapi Anda dapat meneruskan beberapa variabel yang ingin Anda hapus, pisahkan dengan koma
Fungsi unset() tidak memiliki nilai kembalian
Setelah variabel tidak disetel, program berperilaku seolah-olah variabel tersebut tidak pernah ada dan tidak lagi mengenalinya. Jika Anda menghapus variabel kemudian mencoba menggunakannya lagi di program Anda, sistem memberikan kesalahan variabel yang tidak terdefinisi
Jika fungsi unset() dipanggil di dalam fungsi yang ditentukan pengguna, ini hanya akan menghapus variabel lokal. Jika Anda ingin menghapus variabel global di dalam fungsi (yang diinisialisasi di luarnya), maka Anda harus menggunakan larik $GLOBALS untuk melakukannya.
Fungsi array_splice()
Fungsi array_splice() sudah ada di dalam PHP dan menghapus elemen yang dipilih dari array dan menggantinya dengan elemen baru.
Sintaksis
array_splice(array1, mulai, panjang, array2)
Parameter
ParameterRequirementDescriptionarray1RequiredMenentukan larik tempat Anda ingin menghapus atau mengganti elemen. startRequiredIni adalah nilai numerik yang menentukan di mana fungsi akan mulai menghapus elemen. Nilai numerik dari elemen pertama adalah 0. Jika disetel ke negatif, fungsi dimulai sejauh itu dari elemen terakhir. lengthOptionalIni adalah nilai numerik yang menentukan berapa banyak elemen yang akan dihapus dari array. Jika diatur ke negatif, fungsi berhenti sejauh itu dari elemen terakhir. Jika tidak disetel, fungsi akan menghapus semua elemen, dimulai dari posisi yang disetel oleh parameter awal. array2OptionalIni adalah array dengan elemen yang akan dimasukkan ke dalam array asli. Itu bisa berupa string jika hanya satu elemen
Fungsi array_values()
array_values() adalah fungsi PHP bawaan yang mengindeks ulang array dan mengembalikannya dengan kunci numerik, mulai dari 0 .
Sintaksis
nilai_array(array)
Larik adalah parameter wajib yang menentukan larik yang akan dikerjakan
Cara menghapus elemen dari array di PHP
Ada beberapa metode untuk menghapus elemen tertentu dari array di PHP. Di sini, akan mencakup dua metode seperti yang diuraikan di bawah ini
- Menggunakan fungsi unset()
- Menggunakan fungsi array_splice()
Metode 1. Menggunakan fungsi unset()
Fungsi unset() dapat digunakan untuk menghancurkan seluruh array dalam variabel, atau elemen tertentu dalam array menggunakan indeks atau kuncinya
Berbeda dengan variabel biasa di mana kita hanya meneruskan nama variabel ke fungsi, untuk menghapus elemen tertentu dari array dan membiarkan elemen lainnya tetap utuh, kita harus memasukkan indeks elemen atau kunci ke variabel array saat meneruskannya ke unset.
Contoh 1
Menghapus elemen dari array yang diindeks secara numerik berdasarkan indeksnya
<?php $fruits = array("Apple", "Mango", "Avocado", "Banana", "Watermelon", "Passion"); echo "The array before deleting an element <br>"; print_r ($fruits); echo "<br>"; unset($fruits[1]); echo "The array after deleting an element <br>"; print_r ($fruits);Keluaran
Array sebelum menghapus elemen
Array ( [0] => Apple
[1] => Mangga
[2] => Alpukat
[3] => Pisang
[4] => Semangka
[5] => Gairah
)
Array setelah menghapus elemen
Array ( [0] => Apple
[2] => Alpukat
[3] => Pisang
[4] => Semangka
[5] => Gairah
)
Indeks array dimulai dari 0. Jadi elemen array dengan indeks 1 sebenarnya adalah elemen kedua dalam array. Kami telah meneruskan nama array dengan indeks 1 ke fungsi unset(). Dari output, Anda dapat melihat elemen kedua (Mangga) telah dihapus dari array
Satu hal yang dapat Anda perhatikan dari contoh di atas adalah bahwa setelah menghapus elemen dengan indeks 1, fungsi menjaga indeks lainnya tidak tersentuh, yaitu indeks satu hilang dengan array yang dihasilkan dimulai dengan indeks 0 diikuti oleh 2. Fungsi unset() tidak mengindeks ulang array setelah menghapus elemen dari array yang diindeks secara numerik
Untuk memperbaikinya dan membuat array yang dihasilkan diindeks ulang, yang perlu Anda lakukan adalah meneruskan array ke fungsi array_values()
Contoh 2
Pengindeksan ulang array numerik menggunakan fungsi array_values() setelah menghapus elemen dengan fungsi unset()
<?php $laptops = array("Apple", "HP", "Toshiba", "Dell", "Lenovo"); unset($laptops[2]); array_values($laptops); print_r($laptops); _Keluaran
Array sebelum menghapus elemen
Array ( [0] => Apple
[1] => Hp
[2] => dell
[3] => Lenovo
)
Seperti yang Anda lihat dari output, kami telah menghapus "Toshiba" yang menempati indeks 2 dari array. Setelah meneruskan larik ke fungsi array_values() , ia telah diindeks ulang agar "Dell" bergeser dari indeks 3 ke 2 dan "Lenovo" dari indeks 4 ke 3
Contoh 3
Menghapus elemen dari array asosiatif berdasarkan kuncinya
<?php $person = array("name" => "John Doe", "email" => "johndoe@gmail.com", "age" => 28); echo "The array before deleting an element <br>"; print_r ($person); echo "<br>"; unset($person["age"]); echo "The array after deleting an element <br>"; print_r ($person);Keluaran
Array sebelum menghapus elemen
Larik ( [nama] => John Doe
[email] => johndoe@gmail. com
[umur] => 28
)
Array setelah menghapus elemen
Larik ( [nama] => John Doe
[email] => johndoe@gmail. com
)
Seperti yang Anda lihat, elemen usia telah dihapus dari larik
Jika Anda mengetahui nilai elemen array dan tidak mengetahui kunci/indeksnya tetapi Anda ingin menghapusnya, Anda dapat melakukannya terlebih dahulu menggunakan array_search() function to get its key, then use that key to delete it.
Anda meneruskan dua parameter ke fungsi array_search() di mana yang pertama adalah nilai yang kuncinya ingin Anda ketahui, dan yang kedua adalah larik aktual tempat Anda mencari nilainya. Fungsi mengembalikan kunci/indeks elemen array dengan nilai itu
<?php $fruits = array("Apple", "Mango", "Avocado", "Banana", "Watermelon", "Passion"); echo "The key for Watermelon is: ".array_search("Watermelon", $fruits);Keluaran
Kunci untuk Semangka adalah. 4
Contoh
<?php $laptops = array("Apple", "HP", "Toshiba", "Dell", "Lenovo"); echo "The array before deleting an element <br>"; print_r ($laptops); echo "<br>"; unset($laptops[array_search("Dell", $laptops)]); echo "The array after deleting an element <br>"; print_r ($laptops); _Keluaran
Array sebelum menghapus elemen
Array ( [0] => Apple
[1] => Hp
[2] => Toshiba
[3] => dell
[4] => Lenovo
)
Array setelah menghapus elemen
Array ( [0] => Apple
[1] => Hp
[2] => Toshiba
[4] => Lenovo
)
Dari contoh di atas, kita telah menggunakan fungsi array_search() dengan nilai "Dell" untuk mencari indeks dari elemen array yang cocok dengannya, kemudian menggunakan indeks tersebut untuk menghapus elemen menggunakan fungsi unset(). Anda dapat dari output itu berfungsi karena "Dell" telah dihapus dari array
Metode 2. Menggunakan fungsi array_splice()
Fungsi ini menghapus rentang tertentu dari elemen array dan mengindeks ulang array secara otomatis
Berbeda dengan fungsi unset() yang membiarkan indeks array tidak tersentuh, Anda dapat melihat dari contoh di atas array_splice() telah mengindeks ulang elemen array setelah penghapusan