Array adalah variabel yang digunakan untuk menyimpan sekumpulan data. Array menggunakan satu nama untuk menyimpan sekumpulan nilai atau data. Nilai yang ada dalam array bisa diubah satu
persatu berdasarkan indeks-nya.
Nilai dalam array bisa berupa bilangan bulat, pecahan desimal, string,
array lainnya, atau tipe data lainnya. Berdasarkan indeks-nya, ada dua
macam array, yaitu :
<?php
$warna = array("Merah", "Hijau", "Biru", "Kuning");//Indexed Array
echo "I like " . $warna[0] . ", " . $warna[1] . " and " . $warna[2] . ".";
echo("<BR />");
$umur=array("Eka"=>"35","Adi"=>"37","Beni"=>"43");//array asosiatif
echo "Eka berumur " . $umur['Eka'] . " tahun.";
?>
Untuk mengakses semua isi array secara berurutan dengan lebih mudah, kita bisa menggunakan foreach yang bisa kita gunakan pada indexed array ataupun array asosiatif.
<?PHP
$warna = array("Merah", "Hijau", "Biru", "Kuning");
echo("Saya suka warna ");
foreach($warna as $x=>$y){
if($x<3)echo($y.", ");
else echo("dan ".$y);
}
?>
Array juga bisa diakses dan diubah satu persatu berdasarkan indeksnya. Indeks array yg indeksnya berupa angka, indeksnya dimulai dari 0.
<?php
$warna = array("Merah", "Hijau", "Biru", "Kuning");
$warna[0]="Pink";
echo "I like " . $warna[0] . ", " . $warna[1] . " and " . $warna[2] . ".";
echo("<BR />");
$umur=array("Eka"=>"35","Adi"=>"37","Beni"=>"43");
$umur["Eka"]=40;
echo "Eka berumur " . $umur['Eka'] . " tahun.";
?>
Sekalipun bisa menggunakan foreach untuk menampilkan secara berurutan, mungkin sesekali kita ingin menampilkan array dengan urutan lain. Untuk itu, kita bisa menggunakan perulangan seperti for atau while jika array yang ada adalah indexed array atau array dengan indeks berupa angka. Sebelum menggunakan perulangan, kalian bisa menyimpan jumlah anggota array menggunakan function count. Misalnya kita ingin menampilkan hanya isi dari array yg indeksnya ganjil.
<?PHP
$warna = array("Merah", "Hijau", "Biru", "Kuning", "Jingga");
echo("Saya suka warna ");
$x=0;
$n=count($warna);
while($x<$n){
if($x<4)echo($warna[$x].", ");
else echo("dan ".$warna[$x]);
$x+=2;
}
?>
Selain array dengan dimensi tunggal, kita juga bisa membuat array dengan banyak dimensi di mana tiap dimensi array berisi array lainnya. Array yang berisi array lain disebut sebagai multi-indexed Array. Contoh :
<?php
$mobil=array(
array("Mobil", 100, 0),
array("Kereta", 200, 0),
array("Kapal", 0, 100)
);
?>
Btw, ada beberapa fungsi yang bisa digunakan untuk array. Function-function tersebut yaitu :
Berikut ini saya akan menunjukkan cara menggunakan implode dan explode. Function explode diperlukan untuk mengubah string menjadi sekumpulan string terpisah yang disimpan dalam array. Sebaliknya, implode digunakan untuk menyatukan nilai string di dalam array menjadi satu string.
<?PHP
$a=explode(" ", "Saya Bukan Siapa-siapa");
echo($a[0]."<BR/>");
$s=implode("+", $a);
echo($s);
?>
- Indexed Array : Array yang index-nya berupa angka yang berurutan dan dimulai dari 0.
- Array asosiatif: Array yang index-nya berupa nama atau string. Array asosiatif indexnya disebut dengan "key".
<?php
$warna = array("Merah", "Hijau", "Biru", "Kuning");//Indexed Array
echo "I like " . $warna[0] . ", " . $warna[1] . " and " . $warna[2] . ".";
echo("<BR />");
$umur=array("Eka"=>"35","Adi"=>"37","Beni"=>"43");//array asosiatif
echo "Eka berumur " . $umur['Eka'] . " tahun.";
?>
<?PHP
$warna = array("Merah", "Hijau", "Biru", "Kuning");
echo("Saya suka warna ");
foreach($warna as $x=>$y){
if($x<3)echo($y.", ");
else echo("dan ".$y);
}
?>
Array juga bisa diakses dan diubah satu persatu berdasarkan indeksnya. Indeks array yg indeksnya berupa angka, indeksnya dimulai dari 0.
<?php
$warna = array("Merah", "Hijau", "Biru", "Kuning");
$warna[0]="Pink";
echo "I like " . $warna[0] . ", " . $warna[1] . " and " . $warna[2] . ".";
echo("<BR />");
$umur=array("Eka"=>"35","Adi"=>"37","Beni"=>"43");
$umur["Eka"]=40;
echo "Eka berumur " . $umur['Eka'] . " tahun.";
?>
Sekalipun bisa menggunakan foreach untuk menampilkan secara berurutan, mungkin sesekali kita ingin menampilkan array dengan urutan lain. Untuk itu, kita bisa menggunakan perulangan seperti for atau while jika array yang ada adalah indexed array atau array dengan indeks berupa angka. Sebelum menggunakan perulangan, kalian bisa menyimpan jumlah anggota array menggunakan function count. Misalnya kita ingin menampilkan hanya isi dari array yg indeksnya ganjil.
<?PHP
$warna = array("Merah", "Hijau", "Biru", "Kuning", "Jingga");
echo("Saya suka warna ");
$x=0;
$n=count($warna);
while($x<$n){
if($x<4)echo($warna[$x].", ");
else echo("dan ".$warna[$x]);
$x+=2;
}
?>
<?php
$mobil=array(
array("Mobil", 100, 0),
array("Kereta", 200, 0),
array("Kapal", 0, 100)
);
?>
Btw, ada beberapa fungsi yang bisa digunakan untuk array. Function-function tersebut yaitu :
function | Kegunaan |
---|---|
array() | Membuat sebuah variabel array |
array_change_key_case() | Mengubah keys dalam assosiative array menjadi lowercase atau uppercase |
array_chunk() | Membagi array menjadi "potongan array" |
array_column() | Mengembalikan nilai dari satu kolom di dalam array |
array_combine() | Membuat array dengan menggabungkan array di mana nilai satu array menjadi key, dan nilai array lainnya menjadi nilai array baru yang dibuat |
array_count_values() | Menghitung semua nilai dari suatu array |
array_diff() | Membandingkan array dan mengembalikan perbedaannya (hanya membandingkan nilainya) |
array_diff_assoc() | Membandingkan array dan mengembalikan perbedaannya (Membandingkan keys dan nilainya) |
array_diff_key() | Membandingkan array dan mengembalikan perbedaannya (Hanya membandingkan keys-nya) |
array_fill() | Mengisi array dengan satu atau beberapa nilai |
array_fill_keys() | Mengisi array dengan satu atau beberapa nilai, dengan memberikan keys-nya |
array_filter() | Memfilter nilai array menggunakan callback function |
array_flip() | Membalikkan nilai dengan key dalam array asosiatif |
array_intersect() | Membandingkan array, dan mengembalikan pasangan yang cocok (compare values only) |
array_intersect_assoc() | Membandingkan array, dan mengembalikan pasangan yang cocok (compare keys and values) |
array_intersect_key() | Membandingkan array, dan mengembalikan pasangan yang cocok (compare keys only) |
array_key_exists() | Mengecek jika suatu key ada di dalam array |
array_keys() | Mengembalikan semua key di dalam array |
array_merge() | Menggabungkan beberapa array ke dalam satu array |
array_merge_recursive() | Menggabungkan beberapa array secara rekursif |
array_multisort() | Mengurutkan array multidimensi atau beberapa array |
array_pad() | Memasukkan sejumlah item dengan nilai-nilai tertentu ke sebuah array |
array_pop() | Menghapus elemen terakhir dari array |
array_product() | Memperhitungkan nilai product dalam array |
array_push() | Memasukkan satu elemen atau lebih ke dalam Array |
array_rand() | Mengembalikan satu atau lebih nilai dari array secara acak |
array_replace() | Mengembalikan nilai dari array pertama dengan nilai dari array berikutnya |
array_replace_recursive() | Mengganti nilai array pertama dengan nilai dari array berikutnya secara rekursif |
array_reverse() | Membalikkan urutan array |
array_search() | Mencari nilai dalam array dan mengembalikan indeks atau key-nya |
array_shift() | Menghapus elemen pertama dalam array dan mengembalikan nilainya |
array_slice() | Mengembalikan sebagian dari isi array |
array_splice() | Menghapus dan mengganti element tertentu dalam array |
array_sum() | Mengembalikan total nilai dari isi array |
array_udiff() | Membandingkan Array dan mengembalikan perbedaannya |
array_unique() | Menyingkirkan "nilai yang sama" dalam array. |
array_unshift() | Menambahkan satu atau dua nilai dalam array |
array_values() | Mengembalikan semua nilai dalam Array |
array_walk() | Menerapkan sebuah function pengguna pada setiap anggota Array |
array_walk_recursive() | Menerapkan sebuah function pengguna secara rekursif pada setiap anggota Array |
arsort() | Mengurutkan array asosiatif secara descending berdasarkan nilainya |
asort() | Mengurutkan array asosiatif secara ascending berdasarkan nilainya |
compact() | Membuat array berisi variabel dan nilainya |
count() | Mengembalikan jumlah elemen dalam array |
current() | Menggembalikan elemen yang digunakan "saat ini" dalam sebuah array |
each() | Mengembalikan pasangan nilai dan key dari element yang digunakan "saat ini" |
end() | Menempatkan pointer internal dari array ke indeks terakhir |
extract() | mengimpor variabel-variabel ke dalam "tabel simbol terkini" dari array |
in_array() | Mengecek apakah suatu nilai terdapat dalam array |
key() | Mendapatkan key dari sebuah array |
krsort() | Mengurutkan array asosiatif dalam urutan descending berdasarkan key |
ksort() | Mengurutkan array asosiatif dalam urutan ascending berdasarkan key |
list() | Menugaskan variabel seolah-olah variabel tersebut adalah sebuah array |
natcasesort() | Mengurutkan array menggunakan algoritma "natural order" yang case sensitive |
natsort() | Mengurutkan array menggunakan sebuah algoritma "natural order" |
next() | Memajukan pointer internal array |
pos() | Nama lain daricurrent() |
prev() | Memundurkan pointer internal array |
range() | Membuat array yang isinya nilai dengan rentang tertentu |
reset() | Menempatkan pointer internal dari array ke indeks elemen pertama |
rsort() | Mengurutkan indexed array secara descending |
shuffle() | Mengacak isi dari suatu array |
sizeof() | Nama lain dari count() |
sort() | Mengurutkan indexed array dari secara ascending |
Berikut ini saya akan menunjukkan cara menggunakan implode dan explode. Function explode diperlukan untuk mengubah string menjadi sekumpulan string terpisah yang disimpan dalam array. Sebaliknya, implode digunakan untuk menyatukan nilai string di dalam array menjadi satu string.
<?PHP
$a=explode(" ", "Saya Bukan Siapa-siapa");
echo($a[0]."<BR/>");
$s=implode("+", $a);
echo($s);
?>
Function lain yang cukup sering digunakan untuk array adalah function untuk pengurutan array. PHP sudah menyediakan function sort dan rsort untuk mengurutkan isi array biasa dengan mudah. Untuk mengurutkan isi array asosiatif, kalian bisa menggunakan function asort dan arsort. Jika kalian ingin mendapatkan hasil yang maksimal, gunakan tipe data yang sama dalam array, dan jangan mencampur angka dengan string. Contoh penggunaan sort dan rsort adalah sebagai berikut ini :
<?PHP
$warna = array("Merah", "Hijau", "Biru", "Kuning", "Jingga");
echo("Saya suka warna ");
$x=0;
$n=count($warna);
while($x<$n){
if($x<4)echo($warna[$x].", ");
else echo("dan ".$warna[$x]);
$x+=2;
}
//urutkan array secara ascending
echo("<BR /><BR />urutkan array secara ascending!<BR />");
$x=0;
sort($warna);
echo("Saya suka warna ");
while($x<$n){
if($x<$n)echo($warna[$x].", ");
else echo("dan ".$warna[$x]);
$x+=2;
}
//urutkan array secara descending
echo("<BR /><BR />urutkan array secara ascending!<BR />");
$x=0;
rsort($warna);
echo("Saya suka warna ");
while($x<$n){
if($x<$n)echo($warna[$x].", ");
else echo("dan ".$warna[$x]);
$x+=2;
}
?>
<?PHP
$warna = array("Merah", "Hijau", "Biru", "Kuning", "Jingga");
echo("Saya suka warna ");
$x=0;
$n=count($warna);
while($x<$n){
if($x<4)echo($warna[$x].", ");
else echo("dan ".$warna[$x]);
$x+=2;
}
//urutkan array secara ascending
echo("<BR /><BR />urutkan array secara ascending!<BR />");
$x=0;
sort($warna);
echo("Saya suka warna ");
while($x<$n){
if($x<$n)echo($warna[$x].", ");
else echo("dan ".$warna[$x]);
$x+=2;
}
//urutkan array secara descending
echo("<BR /><BR />urutkan array secara ascending!<BR />");
$x=0;
rsort($warna);
echo("Saya suka warna ");
while($x<$n){
if($x<$n)echo($warna[$x].", ");
else echo("dan ".$warna[$x]);
$x+=2;
}
?>
Function-function sederhana untuk array yang tidak menggunakan "user defined function" umumnya hanya perlu satu parameter yaitu array tersebut. Jadi, seharusnya kalian bisa menggunakan function-function tersebut dengan mudah.