Array dalam PHP

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 :
  1. Indexed Array : Array yang index-nya berupa angka yang berurutan dan dimulai dari 0.
  2. Array asosiatif: Array yang index-nya berupa nama atau string. Array asosiatif indexnya disebut dengan "key".
Array dideklarasikan dengan menggunakan function array(). Berikut ini, adalah contoh cara penggunaan array.

<?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 :

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;
    }
?>

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.