Saturday, 29 September 2012

Tipe Array dalam PHP

Saat ini saya mencoba mengingatkan tentang array, apa itu array? bagaimana memanfaatkan array?

Definisi array pada manual php menyebutkan "An array in PHP is actually an ordered map. A map is a type that associates values to keys". Pada pengertian ini disebutkan bahwa array adalah sebuah "ordered map" yang berarti sekumpulan data yang dapat dimanfaatkan dengan memerintahkan map, dimana map adalah sebuah typetype disini adalah nilai yang berhubungan dengan sebuah key (indeks).

Untuk lebih sederhananya type adalah sebuah kumpulan data, dimana setiap nilai dari data berhubungan dengan sebuah key (indeks), yang dapat diperintahkan.

Type ini dapat dimanfaatkan secara optimal dengan cara-cara berbeda. Type dapat diperlakukan sebagai array itu sendiri, list (vector), hash table (implementasi dari map), kamus data, koleksi data, tumpukan, antrian dan masih banyak lagi.

Bila kita membuka w3schools pengertian array akan lebih sederhana, "Array is a special variable, which can store multiple values in one single variable". Array adalah variable spesial yang dapat menyimpan banyak nilai dalam satu variable.

Dari dua penjelasan diatas kita dapat menarik kesimpulan bahwa kedua penjelasan mengarah ke inti yang sama, array adalah multiple values. Hanya saja penjelasan dari manual php lebih luas dibandingkan dengan w3schools.

Untuk lebih jelas, perhatikan cara mendefinisikan array:

array(key=>value, key1=>value2, key3=>value3, ... );

Setiap elemen dipisah oleh koma dan menaruh koma pada elemen terakhir adalah optional.

Pada php 5.4 definisi array() dapat digantikan dengan [ ].

Contoh penggunaan array secara sederhana:

$array = array("foo"=>"foo", "bar"=>"bar" );
//...php 5.4
$array = [ "foo"=>"foo", "bar"=>"bar" ];

Key pada array bisa berupa integer atau string sementara value dapat diisi dengan tipe apapun.

Beberapa hal yang harus diperhatikan saat menentukan key;

  • Memberikan key dengan tipe data string yang sama dengan tipe data integer yang valid akan di cast menjadi tipe integer. misal: key "8" akan diubah menjadi 8, kecuali panulisannya "08" tidak akan diubah karena "08" penulisan yang tidak valid pada tipe data integer.
  • Untuk tipe data float akan diubah menjadi integer, maksudnya adalah bagian pecahan akan dipotong misal: 5.6 akan diubah menjadi 5.
  • Tipe data Boolean akan diubah menjadi integer, untuk true akan diubah menjadi 1 dan false menjadi 0.
  • Untuk Null akan diubah menjadi string kosong "".
  • Array dan object tidak dapat dijadikan key, bila ini terjadi akan ada pesan warning: Illegal offset type.

Jika kita mendeklarasikan array dengan key yang sama, maka yang akan tersimpan hanya key terakhir, karena key terakhir merubah (overwritten) value sebelumnya.

Perhatikan contoh:

$array = array(1=>"a", "1"=>"b", 1.5=>"c", true=>'d');
var_dump($array);

result:

array(1) {
	[1]=>String(1) "d"
}

Key pada array dapat diisi integer dan string secara bersamaan, karena array pada PHP tidak membedakan antara array indeks dan asosiatif.

Perhatikan contoh:

$array = array(
	"foo"=>"foo",
    "bar"=>"bar",
    100=>100,
    -100=>-100
);
var_dump( $array );

result:

array(4) { 
    ["foo"]=> string(3) "bar"  
    ["bar"]=> string(3) "foo" 
    [-100]=> int(100)  
    [100]=> int(-100)  
}

Key bersifat optional dapat didefinisikan dan juga tidak, bila key tidak didefinisikan key akan otomatis terisi dengan integer bilangan bulat.

Perhatikan contoh:

$array = array( "foo", "bar", "hallo", "world" );
var_dump( $array );

result:

array(4) {
  [0]=>string(3) "foo"
  [1]=>string(3) "bar"
  [2]=>string(5) "hallo"
  [3]=>string(5) "world"
}

No comments:

Post a comment