Rabu, 22 Februari 2017
Tutorial PHP Tipe Array Dan Contohnya
Tutorial PHP Tipe Array Dan Contohnya
Jaka Prima Maulana
Artikel Berepisode
Selamat datang pengunjung www.primasaja.com, pada tutorial kali ini kita akan membahas seluk beluk penggunaan tipe array pada PHP yang akan dijelaskan pengertian beserta contoh-contohnya.- Pengenalan
- Tutorial Dasar
- Referensi Bahasa
Pengertian Arrays
Array didalam PHP sesungguhnya untuk penyusunan map / peta. map adalah type yang mengasosiasikan value menjadi kunci / key. tipe ini dioptimalkan bagi beberapa user yang berbeda, tipe ini dapat dimaksudkan sebagai array, list (vector), bagian table ( implementasi dari map ), kamus, collection, stack /tumpukan , queue / antrian, dan lainnya. nilai array dapat menjadi array lain, tree dan multidimensional array juga bisa dilakukan.
penjelasan mengenai struktur data dilewati dalam penjelasan ini, tapi akan diberikan contoh setiap masing-masingnya. untuk informasi lebih lanjut, lihat dalam literature yang ada tentang topic yang lebih luas.
Penggunaan Array dalam PHP
Array dapat dibuat dengan menggunakan Array(). penggunaan tersebut dapat mengambil berapapun nomor yang dipisahkan dengan koma ( , ), key => value sebagai argument.
Kunci Format Array
array(
var1 => value1,
var2 => value2,
var3 => value3,
..... dan seterusnya
)
koma pada array element terakhir adalah opsi bisa digunakan ataupun tidak. Biasanya lebih disukai ( 1, 2 ) daripada ( 1,2, ). untuk multi-line array biasanya juga diikuti dengan koma, agar mempermudah menambahkan element baru di akhir.
Mulai pada versi PHP 5.4 penggunaan array dapat dipersingkat dengan menggunakan ( [] ) yang sebelumnya array(). sebagai contoh seperti berikut ini :
Penggunaan Array yang Simple
<?php
$array = array(
"var1" => "1",
"var2" => "2",
"var3" => "3"
);
//versi PHP 5.4 bisa hanya menggunakan []
$arraybaru = [
"var4" => "4",
"var5" => "5"
];
echo $array["var1"];
echo $arraybaru["var5"];
?>
key dalam contoh diatas juga dapat sebagai integer ataupun string. value bisa jadi type apa saja.
selain itu key dapat menjadi :
- String yang mengandung valid integers akan menjadi type integer. misalnya key "8" akan secara langusng tersimpan sebagai 8. dan contoh lainnya "08" tidak akan menjadi karena itu bukanlah data yang valid sebagai integer decimal.
- Float juga dapat menjadi integer, dimana maksudnya pecahan akan menjadi terpotong. misalnya key 8.7 akan disimpan menjadi nilai 8
- Bool juga dapat menjadi integer, yaitu key true akan tersimpan dalam nilai 1 dan key false akan tersimpan dengan 0.
- Null akan menjadi string yang kosong, yaitu key null akan tersimpan "".
- arrays dan object tidak dapat digunakan sebagai key. jika melakukannya akan menimbulkan error Illegal offset type.
jika multiple element didalam deklarasi array gunakan key yang sama, hanya yang terakhir yang akan digunakan dan yang lainnya akan ditimpa.
Contoh Array type sebagai key dan penimpaan key yang sama
<?php
$array = array(
//keynya adalah 1 dalam type integer
1 => "a",
//keynya adalah "1" dalam type string
"1" => "b",
//keynya adalah 1.5 dalam type float dan akan dibulatkan menjadi 1
1.5 => "c",
//keynya dalah type boolean dan akan bernilai 1 jika true
true => "d",
);
//maka hasil array hanya terdapat 1 index
//array(1) { [1]=> string(1) "d" }
//karena key yang sama akan ditimpa dan diambil nilai yang terakhir
var_dump($array);
?>
PHP array dapat mengandung integer dan string key dalam satu waktu PHP tidak membedakan antara index dan assosiasi array.
Contoh Array Gabungan kunci integer dan string
<?php
$array = array(
"key1" => "nilai key 1",
"key2" => "nilai key 2",
200 => -1200,
-200 => 1200,
);
var_dump($array);
?>
Key adalah optional. jika kunci tidak dispesifikasikan, PHP akan menggunakan increment menggunakan integer key.
<?php
$array = array("nilai key 0", "nilai key 1", "nilai key 2", "nilai key 3");
echo '<pre>';
var_dump($array);
echo '</pre>';
/*
output :
array(4) {
[0]=>
string(11) "nilai key 0"
[1]=>
string(11) "nilai key 1"
[2]=>
string(11) "nilai key 2"
[3]=>
string(11) "nilai key 3"
}
*/
?>
Bisa juga menspesifikasikan beberapa key dan membiarkan key yang lain terincrement :
Contoh Pemakaian Key Array hanya Sebagaian Element
<?php
<?php
$array = array(
"p",
"r",
"i",
8 =>"m",
"a",
"s",
"a",
"j",
"a",
);
echo "<pre>";
var_dump($array);
echo "</pre>";
/*
output :
array(9) {
[0]=>
string(1) "p"
[1]=>
string(1) "r"
[2]=>
string(1) "i"
[8]=>
string(1) "m"
[9]=>
string(1) "a"
[10]=>
string(1) "s"
[11]=>
string(1) "a"
[12]=>
string(1) "j"
[13]=>
string(1) "a"
}
*/
?>
<?php
$array = array(
"p",
"r",
"i",
8 =>"m",
"a",
"s",
"a",
"j",
"a",
);
echo "<pre>";
var_dump($array);
echo "</pre>";
/*
output :
array(9) {
[0]=>
string(1) "p"
[1]=>
string(1) "r"
[2]=>
string(1) "i"
[8]=>
string(1) "m"
[9]=>
string(1) "a"
[10]=>
string(1) "s"
[11]=>
string(1) "a"
[12]=>
string(1) "j"
[13]=>
string(1) "a"
}
*/
?>
Contoh diatas menjelaskan increment akan dilanjutkan mengambil nilai tertinggi dari key sebelumnya, contoh diatas key sebelumnya 8 maka key selanjutnya adalah 9, dan seterusnya.
Mengakses Element Array dengan kurung siku sintaks
Array element dapat diakses dengan sintaks array [key].
Contoh Mengakses array elements
<?php
/*$array = array(
"p",
"r",
"i",
8 =>"m",
"a",
"s",
"a",
"j",
"a",
);
echo "<pre>";
var_dump($array);
echo "</pre>";*/
/*
output :
array(9) {
[0]=>
string(1) "p"
[1]=>
string(1) "r"
[2]=>
string(1) "i"
[8]=>
string(1) "m"
[9]=>
string(1) "a"
[10]=>
string(1) "s"
[11]=>
string(1) "a"
[12]=>
string(1) "j"
[13]=>
string(1) "a"
}
*/
?>
Contoh Mengakses Array Multidimensional
<?php
//mengakses array element
$array = array(
"r",
"i",
"m",
"p",
"s",
"j",
"a",
"multidimensi" => array(
".",
"multidimensi2" => array(
"c",
"o",
"m",
)
)
);
echo "<pre>";
var_dump($array);
echo "</pre>";
echo $array[3].$array[0].$array[1].$array[2].$array[6].$array[4].$array[6].$array[5].$array[6];
echo $array["multidimensi"][0];
echo $array["multidimensi"]["multidimensi2"][0];
echo $array["multidimensi"]["multidimensi2"][1];
echo $array{"multidimensi"}{"multidimensi2"}[2];
/*
output :
array(8) {
[0]=>
string(1) "r"
[1]=>
string(1) "i"
[2]=>
string(1) "m"
[3]=>
string(1) "p"
[4]=>
string(1) "s"
[5]=>
string(1) "j"
[6]=>
string(1) "a"
["multidimensi"]=>
array(2) {
[0]=>
string(1) "."
["multidimensi2"]=>
array(3) {
[0]=>
string(1) "c"
[1]=>
string(1) "o"
[2]=>
string(1) "m"
}
}
}
primasaja.com
*/
?>
Catatan : Baik kurung siku maupun kurung kurawal dapat digunakan bergantian untuk mengakses array element misalnya seperti contoh diatas $array{"multidimensi"}{"multidimensi2"}[2]; {} dan [] sama saja.
Pada PHP 5.4 memungkinkan menggunakan array dereference result dari function atau method dipanggil. Sebelumnya hanya dapat menggunakan temporary variable.
Pada PHP 5.5 memungkinkan array dereference array secara tepat
Contoh Array Dereferencing
<?php
function fungsi1(){
return array(1,2,3);
}
// menggunakan ini sejak versi PHP 5.4
$getelement2darifungsi = fungsi1()[1];
echo $getelement2darifungsi;
// versi sebelumnya
$tmp = fungsi1();
$tmpget = $tmp[0];
echo $tmpget;
?>
Membuat atau Memodifikasi Kurung siku sintak array
array yang ada dapat dimodifikasi dengan jelas melakukan setting pada value didalamnya.
ini dapat dilakukan dengan memberikan tugas pada value ke array, menspesifikasikan key didalam kurung, dan key dapat juga dihilangkan, hasilnya adalah kurung yang kosong ( [] ).
$arr[key] = value;
$arr[] = value;
// key dapat berupa integer atau string
// value dapat berupa apa saja dan tipe apa saja
jika $arr belum ada, itu akan dibuat, jadi ini juga bisa menjadi alternative dalam membuat array. jika $arr telah mengandung value misalnya string dari request variabel, maka valuenya akan tetap pada tempatnya dan [] akan berdiri sebagai string access operator. ini selalu menjadi lebih baik untuk ini inisialisasi varaible dengan memberikan tugas langsung.
untuk mengganti value tertentu, berikan tugas value baru ke element menggunakan key. untuk menghapus key/value, menggunakan function unsset().
<?php
//menambah atau menghapus array
$array = array(1 => 10, 6 => 40);
$array['keybaru'] = 53;
unset($array[1]);
var_dump($array);
//unset($array);
//menghapus seluruh array
?>
Catatan :
dari contoh diatas jika tidak ada kunci dispesifikasikan maksimum dari integer yang ada indikasi diambil, dan key yang baru kaan mencari value maksimum plus 1 tapi jangan 0. jika tidak ada integer yang terindikasikan, key akan mengembalikan menjadi 0.
<?php
// Membuat simple array
$array = array(1, 2, 3, 4, 5);
print_r($array);
// Menghapus setiap element array, tetapi membiarkan array sendiri tetap ada:
foreach ($array as $i => $value) {
unset($array[$i]);
}
print_r($array);
// Menambahkan element / item.
$array[] = 6;
print_r($array);
// mengindeks ulang:
$array = array_values($array);
$array[] = 7;
print_r($array);
?>
Fungsi yang berguna
Terdapat beberapa function yang berguna untuk bekerja dengan array. unset() function digunakan untuk mengizinkan untuk menghapus key dari array. berhati-hari array tidak akan ter re-index. jika itu benar buang dan shift perilaku yang diinginkan, array dapat me re-index dengan menggunakan function array_values().
<?php
$array = array(1 => 'prima', 2 => 'saja', 3 => 'com');
unset($array[2]);
print_r($array);
/*
Array ( [1] => prima [3] => com )
key integer 2 akan hilang tetapi key yang lain tetap
untuk mengatur ulang increment key menggunakan function array_values()
*/
$array = array_values($array);
print_r($array);
// Array ( [0] => prima [1] => com )
//increment akan dimulai dari 0 kembali
?>
struktur foreach control bisa menspesifikasi array. ini adalah cara melayani paling mudah untuk melintasi array.
Yang Array dapat lakukan dan tidak
mengapa $var[key] salah?
selalu menggunakan kutip disekeliling definisi string array index. sebagai contoh seperti ini, $var['key'] adalah benar, ketika $var[key] adalah salah. mengapa? ini berhubungan umumnya penemuan ini hanya ada pada script jaman dulu :
<?php
$arr[key] = 'musuh';
echo $arr[key];
// etc
?>
ini salah tetapi bisa jalan. alasannya adalah code diatas undefined ( belum terdefinisi ) constant ( key ) dari pada string ( 'key' - diberitahukan dengan kutip ). itu bekerja karena PHP otomatis convert bare string ( string yang tidak terkutip yang berarti tidak sesuai dengan simbol apapun ) menuju string yang mengandung bare string. sebagai contoh, jika tidak ada definisi constant yang bernama key, maka PHP akan mengganti string menjadi 'key' dan menggunakannya.
Catatan : itu tidak berarti selalu menggunakan kutip pada key. jangan kutip keys yang mengandung constants atau variable, itu akan mencegah PHP untuk menafsirkan mereka.
contoh :
<?php
error_reporting(E_ALL);
ini_set('display_errors, true);
ini_set('html_errors', false);
//array yang simple :
$array = array(1,2);
$count = count($array);
for ($i = 0; $i < $count; $i++){
echo "\nChecking $i: \n";
echo "Salah: " . $array['$i'] . "\n";
echo "Benar: " . $array[$i] . "\n";
echo "Salah: {$array['$i']}\n";
echo "Benar: {$array[$i]}\n";
}
?>
Contoh lain yang menjelaskan seperti hal tersebut seperti dibawah ini :
Ketika error_reporting ter set untuk memperlihatkan E_NOTICE level error ( dengan mensettingnnya ke E_ALL, sebagai contoh ), seperti kegunaan untuk sesegara langsung menjadi visible. secara default, error_reporting terset untuk tidak memperlihatkan notices.
pernyataan dalam bagian sintaks, apa yang ada didalam kurung siku ( [ dan ] ) haruslah sebuah expression. yang berarti kode seperti berikut akan bekerja :
<?php
//echo $arr[fungsi1($var)];
?>
Ini adalah contoh menggunakan function return value sebagai index array. PHP juga tau tentang constant :
<?php
/*$error_descriptions[E_ERROR] = "Fatal error terjadi";
$error_descriptions[E_WARNING] = "Terdapat peringatan issue PHP";
$error_descriptions[E_NOTICE] = "Ini hanya informal permberitahuan";
*/
?>
<?php
/*$error_descriptions[1] = "Fatal error terjadi";
$error_descriptions[2] = "Terdapat peringatan issue PHP";
$error_descriptions[8] = "Ini hanya informal permberitahuan";
*/
?>
Karena E_error sama dengan 1, dan seterusnya..
Jadi mengapa itu buruk?
pada point yang sama di masa depan, PHP team mungkin ingin menambahkan constant atau keywork lain, atau constant dilain code mungkin mengganggu. sebagai contoh, ini adalah sudah salah untuk menggunakan kata empty dan default seperti ini, sejak mereka melayani keyword
contoh diatas tersebut akan memunculkan memiliki 2 kunci yaitu 'var2', meskipun salah satu dari mereka bernama 'wadah1A'
<?php
/*error_reporting(E_ALL);
$arr = array( 'merk_motor' => 'Honda', 'merk_mobil' => 'Nissan');
// contoh yang benar
print $arr['merk_motor'].'<br>';
print $arr['merk_mobil'].'<br>';
// ini salah. tetapi tampil yang diinginkan tetapi juga memberikan pesan error pada PHP dengan pemberitahuan
//tidak terdefinisi constant merk_mobil
//contoh
print $arr[merk_mobil].'<br>';
//untuk tidak error dan terdefinisi constant merk_mobil maka menggunakan function define()
define('merk_mobil', 'merk_motor');
//lihat perbedaannya sekarang
print $arr['merk_motor'].'<br>';
print $arr[merk_mobil].'<br>';
//pengikut lain juga diizinkan didalam string. Constants tetap diterjemahkan meski didalam string contohnya seperti berikut :
print " Nama Merk : $arr[merk_mobil] <br>";
//dengan satu pengecualian kurung mengelilingi array didalam string mengizinkan constant untuk di artikan. contoh :
print " Merk Mobil : {$arr[merk_mobil]} <br>";
print " Merk Motor : {$arr['merk_motor']} <br>";
// ini tidak akan bekerja dan hasilnya menguraikan error seperti
// parse error : parse error, expecting T_STRING, T_Variable atau T_nUM_STRING
// tentu saja ini dapat dihindari dengan menggunakan superglobals didalam string
/*print " Merk Mobil = $arr['merk_mobil'] ";
print " Merk Motor = $_GET['merk_motor'] ";*/
//mengkonsentrasikan adalah opsi lain untuk menghindari error ini
/*print " Merk Mobil :". $arr['merk_mobil'] ;*/
?>
/*error_reporting(E_ALL);
$arr = array( 'merk_motor' => 'Honda', 'merk_mobil' => 'Nissan');
// contoh yang benar
print $arr['merk_motor'].'<br>';
print $arr['merk_mobil'].'<br>';
// ini salah. tetapi tampil yang diinginkan tetapi juga memberikan pesan error pada PHP dengan pemberitahuan
//tidak terdefinisi constant merk_mobil
//contoh
print $arr[merk_mobil].'<br>';
//untuk tidak error dan terdefinisi constant merk_mobil maka menggunakan function define()
define('merk_mobil', 'merk_motor');
//lihat perbedaannya sekarang
print $arr['merk_motor'].'<br>';
print $arr[merk_mobil].'<br>';
//pengikut lain juga diizinkan didalam string. Constants tetap diterjemahkan meski didalam string contohnya seperti berikut :
print " Nama Merk : $arr[merk_mobil] <br>";
//dengan satu pengecualian kurung mengelilingi array didalam string mengizinkan constant untuk di artikan. contoh :
print " Merk Mobil : {$arr[merk_mobil]} <br>";
print " Merk Motor : {$arr['merk_motor']} <br>";
// ini tidak akan bekerja dan hasilnya menguraikan error seperti
// parse error : parse error, expecting T_STRING, T_Variable atau T_nUM_STRING
// tentu saja ini dapat dihindari dengan menggunakan superglobals didalam string
/*print " Merk Mobil = $arr['merk_mobil'] ";
print " Merk Motor = $_GET['merk_motor'] ";*/
//mengkonsentrasikan adalah opsi lain untuk menghindari error ini
/*print " Merk Mobil :". $arr['merk_mobil'] ;*/
?>
Ketika error_reporting ter set untuk memperlihatkan E_NOTICE level error ( dengan mensettingnnya ke E_ALL, sebagai contoh ), seperti kegunaan untuk sesegara langsung menjadi visible. secara default, error_reporting terset untuk tidak memperlihatkan notices.
pernyataan dalam bagian sintaks, apa yang ada didalam kurung siku ( [ dan ] ) haruslah sebuah expression. yang berarti kode seperti berikut akan bekerja :
<?php
//echo $arr[fungsi1($var)];
?>
Ini adalah contoh menggunakan function return value sebagai index array. PHP juga tau tentang constant :
<?php
/*$error_descriptions[E_ERROR] = "Fatal error terjadi";
$error_descriptions[E_WARNING] = "Terdapat peringatan issue PHP";
$error_descriptions[E_NOTICE] = "Ini hanya informal permberitahuan";
*/
?>
Catatan : E_ERROR juga valid identifier, seperti pada contoh paling pertama. tetapi contoh terakhir adalah fakta sama seperti tulisan :
<?php
/*$error_descriptions[1] = "Fatal error terjadi";
$error_descriptions[2] = "Terdapat peringatan issue PHP";
$error_descriptions[8] = "Ini hanya informal permberitahuan";
*/
?>
Karena E_error sama dengan 1, dan seterusnya..
Jadi mengapa itu buruk?
pada point yang sama di masa depan, PHP team mungkin ingin menambahkan constant atau keywork lain, atau constant dilain code mungkin mengganggu. sebagai contoh, ini adalah sudah salah untuk menggunakan kata empty dan default seperti ini, sejak mereka melayani keyword
Catatan : untuk mengulangi, didalam kutip dua string, juga dapat value untuk tidak mengitari array index dengan kutip jadi "$var[key]" adalah valid.
MengConvert ke Array
untuk tipe integer, float, string, boolean, dan resource, mengkonversikan value ke hasil array didalam array dengan single element dengan index 0 dan value scalar yang mana telah terkonversi. dalam kata lain, (array)$scaralarValue adalah sama dengan array($scalarValue)
jika object terconvert ke array, dan hasilnya array yang terdapat element dari object properties. key adalah member nama variable, dengan beberapa catatan pengecualian : integer properties tidak dapat teracces, private variable yang memiliki nama class dibubuhi di awal nama variable, protected variable memiliki tanda * dibubuhi diawal nama variable. pembubuhan awal value ini memiliki nilai null bytes dalam sisi lain. in dapat menghasilkan beberapa pengecualian tindakan.
<?php
class wadah1{
private $A;
}
class wadah2 extends wadah1{
private $var1;
public $var2 = array('test','test2');
}
echo '<pre>';
var_dump((array) new wadah2());
echo '</pre>';
$wadah2 = (array) new wadah2();
echo $wadah2['var2'][0];
/*
output :
array(3) { ["wadah2var1"]=> NULL ["var2"]=> array(2) { [0]=> string(4) "test" [1]=> string(5) "test2" } ["wadah1A"]=> NULL }test
*/
?>
contoh diatas tersebut akan memunculkan memiliki 2 kunci yaitu 'var2', meskipun salah satu dari mereka bernama 'wadah1A'
The above will appear to have two keys named 'AA', although one of them is actually named '\0wadah1A\0wadah1A'.
Menkonversi Null menjadi hasil array didalam array yang kosong.
Membandingkan Array dengan Array_diff() function
sangat memungkinkan untuk membandingkan array dengan function array_diff() dan dengan operator array.
Contoh
type array didalam PHP sangat berguna. berikut contohnya :
<?php
$a = array( 'bau' => 'wangi',
'warna' => 'merah',
'nama' => 'mawar',
4 // keynya akan menjadi 0
);
$b = array('a', 'b', 'c');
// . . .ini sama dengan yang atas dengan cara berbeda:
$a = array();
$a['bau'] = 'wangi';
$a['warna'] = 'merah';
$a['nama'] = 'mawar';
$a[] = 4; // key akan menjadi 0
$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// kode diatas bila ditampilkan akan menjadi $a akan menjadi array
// array('bau' => 'wangi', 'warna' => 'merah', 'nama' => 'mawar',
// , 0 => 4), dan $b akan menjadi array
// array(0 => 'a', 1 => 'b', 2 => 'c'), simple array('a', 'b', 'c').
?>
<?php
$a = array( 'bau' => 'wangi',
'warna' => 'merah',
'nama' => 'mawar',
4 // keynya akan menjadi 0
);
$b = array('a', 'b', 'c');
// . . .ini sama dengan yang atas dengan cara berbeda:
$a = array();
$a['bau'] = 'wangi';
$a['warna'] = 'merah';
$a['nama'] = 'mawar';
$a[] = 4; // key akan menjadi 0
$b = array();
$b[] = 'a';
$b[] = 'b';
$b[] = 'c';
// kode diatas bila ditampilkan akan menjadi $a akan menjadi array
// array('bau' => 'wangi', 'warna' => 'merah', 'nama' => 'mawar',
// , 0 => 4), dan $b akan menjadi array
// array(0 => 'a', 1 => 'b', 2 => 'c'), simple array('a', 'b', 'c').
?>
Langganan:
Posting Komentar
(
Atom
)
Tidak ada komentar :
Posting Komentar