Array dalam PHP
Saat ini banyak sekali aplikasi Web yang membutuhkan variabel yang mampu menyimpan beberapa nilai sekaligus secara terorganisir, sehingga kapanpun kita bisa mengambil kembali nilai-nilai tersebut dengan mudah dan dalam bentuk yang teratur dan terorganisir pula. Mengapa array ini bisa dikatakan sangat penting? Karena dalam banyak kasus kita hanya membutuhkan penyimpan nilai sementara, dan dengan array kita bisa melakukannya dengan mudah. Jangan dulu jauh-jauh ke aplikasi web, website dinamis biasa saja (seperti website saya ini) memerlukan yang namanya array agar bisa bekerja extra dan menghasilkan interface yang interaktif.
Nah, disinilah kita membutuhkan array, sebuah tipe variabel yang mampu menyimpan beberapa nilai sekaligus bahkan bisa juga dengan tipe berbeda-beda. Dalam bahasa pemrograman manapun termasuk PHP, pasti suatu saat Anda akan senantiasa menemukan array sebagai salah satu tipe variabelnya. Karena ada yang menyatakan bahwasanya array is powerful.
Dalam PHP, array adalah tipe variabel spesial, karena dengan array kita dapat mengakses sekumpulan nilai dengan menggunakan satu nama variabel. Mekanisme pengaksesan ini diatur dalam bentuk pemetaan (mapping) dari sekumpulan nilai (values) ke sekumpulan kunci (keys) atau indeks. Bentuk dasar sebuah array dapat dilihat seperti di bawah ini.
array index => $arr = array(nilai1, nilai2, nilai3, ...);
array keys => $arr = array(key1=>nilai1, key2, nilai2, key3=>nilai3);
array bisa diinput juga dengan nilai array key atau indexnya secara manual
$arr[0] = nilai1;
$arr[1] = nilai2;
$arr[2] = nilai23;
$arr[a] = nilaiA;
Dalam PHP, ada tiga jenis array:
- Numeric array - Sebuah array dengan indeks numerik (array index)
- Associative array - Sebuah array dimana setiap ID terkait dengan nilai (array key)
- Multidimensional array - Sebuah array yang berisi satu atau lebih array lagi didalamnya
Array berdasarkan Tipe Index nya
1. Array Numeric
Array numeric adalah array yang indeksnya berupa angka. Sebuah array yang indexnya tidak dideklarasikan secara otomatis akan membuat indeksnya berupa angka atau numerik. Jika tidak dideklarasikan maka index pertamanya adalah 0, bukan dimulai dari 1. Lihat contoh berikut
// cara 1
$buah = array("Apel","Mangga","Jeruk","Semangka"); // atau
$hari = array(1=>"Senin", 2=>"Selasa", 3=>"Rabu");
// Cara 2
$kota[] = "Bandung";
$kota[] = "Jakarta";
$kota[] = "Surabaya"; // atau
$hobi[1] = "Makan";
$hobi[3] = "Tidur";
$hobi[4] = "Nulis";
Ada sebuah trik yang ingin saya bagikan kepada sahabat AJN mengenai pembuatan array yang index pertamanya bukan 0, tapi 1. Caranya adalah menginisialkan hanya pada item pertama dengan index 1. Lihat contoh berikut:
$bulan=array(1=>"Januari","Februari","Maret","April","Mei","Juni","Juli","Agustus","Septmber","Oktober","November","Desember");
2. Associative Array
Associative array merupakan array yang indexnya bukan berupa angka, tapi berupa string mulai dari 1 karatker atau lebih. Perhatikan contoh berikut:
$peringkat = array("A"=>"Sangat Baik", "B"=>"Baik", "C"=>"Cukup", "D"=>"Buruk", "E"=>"Terpuruk");
$buah['AP'] = "Apel";
$buah['MG'] = "Mangga";
$buah['SM'] = "Semangka";
$buah['JM'] = "Jambu";
Array Berdasarkan Jenisnya
1. Array Satu Dimensi
Paling sederhana adalah array satu dimensi, di sini kita mendefinisikan satu level nilai kedalam suatu variabel yang sama. Contoh di atas (array berdasarkan index-nya) adalah contoh array satu dimensi. Jadi syntax array satu dimensi adalah:
Untuk pemanggilan dari nilai array caranya cukup dengan memanggil nama variabel diikuti braket yang berisi indeks atau key dari array. Contoh pemanggilan untuk variabel array di atas:
echo $buah[0]; => hasilnya Apel
echo $buah[1]; => hasilnya Mangga
echo $buah[2]; => hasilnya Semangka
cho $peringkat['A']; => hasilnya Sangat Baik
echo $peringkat['B']; => hasilnya Baik, dst
2. Array Multidimensi
Kalo kita baru pertama mengenal multidimensional array, kita akan merasa kebingungan dulu. Tapi jika kita telah mengerti dan memahaminya kita akan sangat terbantu dengan array jenis ini. Kenapa? Di array jenis ini kita bisa mengisi sebuah array dengan array lagi, atau singkatnya array berisi array. Perhatikan contoh di bawah, akan saya coba sajikan secara instant berdasarkan contoh.
$hobi = array(
"makan" => array("Bakso","Seblak","Pizza"),
"nonton" => array("Konser","Sinetron","Film Laga"),
"olahraga" => array("Sepak Bola","Renang","Fitnes")
);
Jadi, dengan metode array multidimensi ini di dalam suatu data array masih bisa berisi satu atau lebih sub data array. Kedalaman sub data array ini bisa bervariasi tergantung keperluan array dalam program yang kita buat.
Pemanggilan array multidimensi ini mengacu pada formula berikut
$array[index][subIndex][subIndex2][...]
Perhatikan contoh berikut ini
echo $hobi['makan'][0] => hasilnya Bakso
echo $hobi['makan'][2]; => hasilnya Pizza
echo $hobi['nonton'][1]; => hasilnya Sinetron
echo $hobi['olahraga'][0]; => hasilnya Sepak Bola
Jadi, jika Anda ingin menampilkan sebuah susunan array dalam bentuk skema yang mudah dibaca silakan gunakan fungsi print_r($arr); maka semua array index beserta key dan nilainya akan diurutkan, sedalam apapun.
Oiya saya mau ngasi sedikit catatanan atau tips nih untuk penulisan array.
1. Dalam penulisan array key array dapat dipanggil dengan dibubuhi tanda petik satu ataupun tanda kutip (tanda kutip atau petik itu disebut delimiter).
2. Array dapat langsung dipanggil di dalam string dengan tanpa menambahkan delimiter.
3. Pemanggilan array yang menggunakan delimiter kedalam string harus diapit oleh tanda kurawal {...} (hanya pada string dengan kutip dua).