Jika telah melakukan penghapusan terhadap array berindex di PHP, maka biasanya array key atau array index nya tidak akan berurutan. Hal ini tentu akan menyebabkan error apabila kita akan melakukan array traversal dengan menggunakan index sebagai kuncinya.
Fungsi array_values
Cara termudah untuk me-reset array index atau array key kembali ke 0 adalah dengan menggunakan fungsi array_values. Berikut ini adalah contohnya.
//inisialisasi data siswa $siswas = array(); $siswas[0] = 'Andi'; $siswas[1] = 'Siti'; $siswas[2] = 'Iman'; $siswas[3] = 'Loan'; $siswas[4] = 'Dini'; //menampilkan isi siswa dengan print_r print_r($siswas); //mengeluarkan siswa yang bernama Iman yang berada pada index ke-2 dari siswas unset($siswas[2]); //tampilkan hasilnya maka hasilnya adalah print_r($siswas); //kemudian akan direset dengan array_values $siswas = array_values($siswas); print_r($siswas);
Dalam contoh kode ini kalau dijelaskan dalam cerita kurang lebih seperti ini.
Ada sekumpulan siswa (array siswas) berjumlah 5 data. Tiba-tiba kita ingin menghapus siswa dengan nama Iman. Data iman ada dalam array siswa berada pada index ke-2. Untuk menghapusnya maka kita akan menggunakan fungsi unset($siswas[2]). Kemudian, iman telah terhapus, namun arraynya jadi tidak berurutan. Untuk mengurut index nya kembali cukup gunakan fungsi array_values($siswas). Dan array siswas akan kembali normal kembali.
array_values untuk Asosiatif array
Penggunaan array_values untuk assosiatif array akan menghasilkan array index yang dimulai dari 0. Sementara array key yang sebelumnya akan diganti oleh indeks array.
Berikut ini adalah contoh kodenya.
//inisialisasi data produk $produk = array(); $produk['nama'] = 'Rolciz Keju Gulung'; $produk['rasa'] = 'Cokelat Oreo'; $produk['ukuran'] = 'Standing Puch 15pcs'; //menampilkan isi produk dengan print_r print_r($produk); //kemudian akan array key akan direset dengan array_values $produk= array_values($produk); print_r($produk);
Dari hasil percobaan dengan kode ini, maka akan memunculkan array produk yang tadinya ada key nama, ukuran, dan rasa akan digantikan dengan array index 0,1,2. Kesimpulannya adalah, fungsi array_values akan memaksa assosiatif array menjadi indexed array.
Demikian. Semoga membantu.