Ada berbagai cara untuk menghapus elemen pada array, masing masing cara memiliki lebih cocok tugas tertentu daripada cara yang lain.

Menghapus elemen array tunggal

Jika Anda ingin menghapus hanya satu elemen array, Anda dapat menggunakan unset() atau \array_splice(). Jika Anda mengetahui nilainya dan tidak mengetahui kunci untuk menghapus elemen, Anda dapat menggunakan \array_search() untuk mendapatkan kuncinya. Ini hanya berfungsi jika elemen tidak muncul lebih dari sekali, karena \array_search mengembalikan hit pertama saja.

Unset()
Perhatikan bahwa ketika Anda menggunakan unset() kunci array tidak akan berubah. Jika Anda ingin mengindeks ulang kunci, Anda dapat menggunakan \array_values() setelah unset(), yang akan mengonversi semua kunci menjadi kunci yang dihitung secara numerik mulai dari 0.

$array = [0 => "a", 1 => "b", 2 => "c"];
unset($array[1]);

Code Diatas Jika dieksesusi akan menjadi seperti ini

[
[0] => a
[2] => c
]

\array_splice()
Jika Anda menggunakan \array_splice() kunci akan secara otomatis diindeks ulang, tetapi kunci asosiatif tidak akan berubah — sebagai lawan dari \array_values(), yang akan mengonversi semua kunci menjadi kunci numerik. \array_splice() membutuhkan offset, bukan kunci, sebagai parameter kedua.

$array = [0 => "a", 1 => "b", 2 => "c"];
\array_splice($array, 1, 1);
 


[
[0] => a
[1] => c
]

Menghapus beberapa elemen array
Jika Anda ingin menghapus beberapa elemen array dan tidak ingin memanggil unset()atau \array_splice()beberapa kali Anda dapat menggunakan fungsi \array_diff() atau \array_diff_key() tergantung pada apakah Anda mengetahui nilai atau kunci elemen yang ingin Anda hapus.

\array_diff() metode
Jika Anda mengetahui nilai elemen array yang ingin Anda hapus, maka Anda dapat menggunakan \array_diff(). Seperti sebelumnya dengan unset()itu tidak akan mengubah kunci array.


$array = [0 => "a", 1 => "b", 2 => "c", 3 => "c"];
$array = \array_diff($array, ["a", "c"]);

Keluaran:

[
[1] => b
]

\array_diff_key()
Jika Anda mengetahui kunci elemen yang ingin Anda hapus, maka Anda ingin menggunakan \array_diff_key(). Anda harus memastikan bahwa Anda memberikan kunci sebagai kunci di parameter kedua dan bukan sebagai nilai. Kunci tidak akan diindeks ulang.

$array = [0 => "a", 1 => "b", 2 => "c"];
$array = \array_diff_key($array, [0 => "xy", "2" => "xy"]);


[
[1] => b
]

Jika Anda ingin menggunakan unset() atau \array_splice() menghapus beberapa elemen dengan nilai yang sama, Anda dapat menggunakan \array_keys() untuk mendapatkan semua kunci untuk nilai tertentu dan kemudian menghapus semua elemen.