Array (Bagian 1)
Menampilkan Array
Pada kasus ini, Anda
akan menampilkan isi sebuah array. Anda akan menggunakan fungsi print_r() atau var_dump().
<?php
// mendefinisikan array
$data = array(
"IND" =>
array(
"nama_utuh" => "Indonesia Raya",
"matauang" => "Rupiah"),
"JPN" =>
array(
"nama_utuh" => "Japan", "matauang"
=> "Yen"),
"SING"
=> array(
"nama_utuh" => "Singapore", "matauang"
=> "Dollar"));
// menampilkan isi array
print_r($data);
var_dump($data);
?>
Menugaskan Nilai Kepada
Elemen Array
Setelah Anda
menentukan sebuah nama untuk array Anda, Anda memiliki dua opsi dalam penugasan
nilai kepada elemen array. Opsi pertama adalah metode dimana setiap nilai
diberikan sekaligus, yang dipisahkan dengan koma, sebagai berikut:
<?php
// penugasan_nilai1.php
// mendefinisikan array
$mobil = array(
'Ferrari',
'Porsche',
'Jaguar',
'Lamborghini',
'Mercedes'
);
// menampilkan isi array
print_r($mobil);
?>
Cara kedua adalah
menciptakan suatu array dengan menetapkan nilai menggunakan notasi indeks,
seperti berikut:
<?php
// penugasan_nilai2.php
// mendefinisikan array
$mobil[0] = 'Ferrari';
$mobil[1] = 'Porsche';
$mobil[2] = 'Jaguar';
$mobil[3] = 'Lamborghini';
$mobil[4] = 'Mercedes';
// menampilkan isi array
print_r($mobil);
?>
Menciptakan Array Asosiatif
Di sini, Anda akan
menggunakan kedua teknik penugasan nilai terhadap array asosiatif. Untuk
melakukannya, Anda memerlukan konektor. Berikut adalah contohnya:
<?php
// array_asosiatif1.php
// mendefinisikan array
$data = array(
'username' =>
'rismon',
'password' =>
'rahasia',
'host' =>
'192.168.0.1'
);
// menampilkan isi array
print_r($data);
?>
Anda dapat pula
menugaskan setiap nilai kepada kunci satu per satu, seperti pada contoh
berikut:
<?php
// array_asosiatif2.php
// mendefinisikan array
$data['username'] = 'rismon';
$data['password'] = 'rahasia';
$data['host'] = '192.168.0.1';
// menampilkan isi array
print_r($data);
?>
Untuk mengakses
sebuah nilai dari array dalam skript, Anda hanya perlu menggunakan nama array
dan indeks/kunci, seperti berikut:
<?php
// akses_array_asosiatif.php
// mendefinisikan array
$data = array(
'username' => 'rismon',
'password' => 'rahasia',
'host' => '192.168.0.1'
);
// menggunakan nilai array
echo 'Password adalah: ' . $data['password'];
?>
Memodifikasi Array
Pemodifikasian nilai
array sama seperti pemodifikasian nilai variabel biasa. Anda hanya perlu
menugasakan nilai baru kepada elemen tertentu menggunakan indeks atau kuncinya.
<?php
// modifikasi_array.php
// mendefinisikan array
$daging = array(
'ikan',
'ayam',
'sapi',
'bebek'
);
// mengubah 'ayam' menjadi 'kerbau'
$daging[2] = 'kerbau';
// menampilkan isi array
print_r($daging);
?>
Memproses Array
Pada kasus, Anda
secara iteratif memproses elemen-elemen di dalam sebuah array. Anda akan
menggunakan loop foreach() dan beberapa
variabel temporer.
<?php
// proses_array.php
// mendefinisikan array berindeks
$arrayIndeks = array("Joni", "Jono",
"Harto", "Santi", "Monika");
// memproses dan menampilkan elemen-elemen array satu per satu
// hasil: "Joni | Jono | Harto | Santi | Monika | "
foreach ($arrayIndeks as $i) {
print "$i |
";
}
?>
<?php
// mendefinisikan array asosiatif
$arrayAsosiatif = array("IND" => "Jakarta",
"US" => "Washington",
"FR" => "Paris", "UK" =>
"London");
// memproses dan menampilkan elemen-elemen array satu per satu
// hasil: "IND: Jakarta US: Washington FR: Paris UK: London
"
foreach ($arrayAsosiatif as $kunci=>$nilai) {
print "$kunci:
$nilai";
print "<br
/>";
}
?>
Cara alternatif,
Anda dapat menggunakan Iterator yang tersedia dalam PHP, seperti berikut:
<?php
// iterator_array.php
// mendefinisikan array asosiatif
$arrayAsosiatif = array("IND" =>
"Jakarta", "US" => "Washington",
"FR" => "Paris", "UK" =>
"London");
// menciptakan sebuah objek ArrayIterator
$iterator = new ArrayIterator($arrayAsosiatif);
// kembali ke awal array
$iterator->rewind();
// memproses dan menampilkan elemen-elemen array satu per satu
// hasil: "IND: Jakarta US: Washington FR: Paris UK: London
"
while($iterator->valid()) {
print
$iterator->key() . ": " . $iterator->current() .
"\n";
$iterator->next();
}
?>
Memproses Array Bersarang
Di sini, Anda akan
memproses semua elemen pada suatu rangkaian array-array bersarang. Anda akan
menuliskan sebuah fungsi rekursif untuk menjelajah array.
<?php
// array_bersarang.php
// fungsi untuk menjelajah array bersarang secara rekursif
function jelajahArray($arr) {
// memeriksa apakah masukan
adalah array
if (!is_array($arr)) {
die ("Argumen bukanlah sebuah array!"); }
// beriterasi pada
array
foreach($arr as
$nilai) {
// jika array
adalah array bersarang
// maka jelajahi
secara rekursif
if
(is_array($nilai)) {
jelajahArray($nilai);
} else {
// memproses
elemen array
print
strtoupper($nilai) . " \n";
}
}
}
// mendefinisikan array bersarang
$data = array(
"Indonesia
Raya",
array("Medan", "Yogyakarta"),
array("Siantar",
array
("Mataram", "Bandung")));
// hasil:
"INDONESIA RAYA MEDAN YOGYAKARTA SIANTAR MATARAM BANDUNG"
jelajahArray($data);
?>
Secara alternatif,
Anda dapat pula menggunakan Iterator dalam PHP, sebagai berikut:
<?php
// iterator_array_bersarang.php
// mendefinisikan array bersarang
$data = array(
"Indonesia
Raya",
array("Medan", "Yogyakarta"),
array("Siantar",
array
("Mataram", "Bandung")));
// menginisialisasi sebuah Iterator
// melewatkannya array yang akan diproses
$iterator = new RecursiveIteratorIterator(new
RecursiveArrayIterator ($data));
// beriterasi pada array
// hasil: "INDONESIA RAYA MEDAN YOGYAKARTA SIANTAR MATARAM
BANDUNG"
foreach ($iterator as $nilai) {
print
strtoupper($nilai) . " \n";
}
?>
Menghitung Jumlah Elemen Di
Dalam Array
Pada kasus ini, Anda
akan menghitung berapa banyak elemen yang dimuat oleh suatu array. Anda akan
menggunakan fungsi PHP count().
<?php
// hitung_elemen_array.php
// mendefinisikan array berindeks
$binatang = array("kuda", "komodo",
"singa", "gajah", "monyet");
// mendapatkan ukuran array (jumlah elemen)
// hasil: 5
echo count($binatang);
?>
Mengkonversi String Menjadi
Array
Di sini, Anda akan
mendekomposisi sebuah string menjadi elemen-elemen individual dan menyimpannya
dalam suatu string atau menggabungkan elemen-elemen suatu array ke dalam sebuah
string. Di sini, Anda akan menggunakan fungsi PHP explode().
<?php
// konversi_string_array.php
// mendefinisikan string
$stringAlfabet = "a b c d e f g h i j k";
// memecah string ke dalam array
// menggunakan spasi-putih sebagai pemisah
// hasil: Array ( [0] => a [1] => b [2] => c [3] =>
d [4] => e [5] =>
// f [6] => g [7]
=> h [8] => i [9] => j [10] => k )
print_r(explode(" ", $stringAlfabet));
?>
Selanjutnya, Anda
akan menggunakan fungsi PHP implode()
untuk menggabungkan elemen-elemen array ke dalam satu string, dengan delimiter
opsional.
<?php
// konversi_array_string.php
// mendefinisikan array
$arrayNama = array("Jono", "Joni",
"Harto", "Santi", "Monika");
// menggabungkan elemen-elemen array ke dalam string
// menggunakan "dan" sebagai separator
// hasil: "Jono dan Joni dan Harto dan Santi dan
Monika"
echo implode(" dan ", $arrayNama);
?>
Menukar Kunci dan Nilai
Array
Anda akan
saling-menukar kunci-kunci dan nilai-nilai dari sebuah array asosiatif. Anda
akan menggunakan fungsi PHP array_flip().
<?php
// tukar_nilai_kunci_array.php
// define associative array
$oposit = array("putih" => "hitam",
"siang" => "malam", "buka" =>
"tutup");
// saling-menukar kunci dan nilai
// hasil Array ( [hitam] => putih [malam] => siang [tutup]
=> buka )
print_r(array_flip($oposit));
?>
Menambah dan Menghapus
Elemen Array
Di sini, Anda akan
menambah atau menghapus elemen dari sebuah array. Anda akan menggunakan fungsi array_pop(), array_push(), array_shift(),
dan array_unshift().
<?php
// tambah_hapus_array.php
// mendefinisikan array berindeks
$superhero = array("spiderman", "superman");
// menambahkan sebuah elemen ke akhir array
// hasil: ("spiderman", "superman",
"superboy")
array_push($superhero, "superboy");
print_r($superhero);
// menghapus sebuah elemen dari awal the array
// hasil: ("superman", "superboy")
array_shift($superhero);
print_r($superhero);
// menambah sebuah elemen di awal array
// hasil: ("hulk", "superman",
"superboy")
array_unshift($superhero, "hulk");
print_r($superhero);
// menghapus sebuah elemen dari akhir array
// hasil: ("hulk", "superman")
array_pop($superhero);
print_r($superhero);
?>
Selanjutnya, Anda
akan menggunakan fungsi PHP array_splice()
untuk menambah atau menghapus elemen dari tengah array.
<?php
// tambah_hapus_tengah_array.php
// mendefinisikan array
$arrayWarna = array("violet", "indigo",
"biru", "hijau", "kuning",
"oranye", "merah", "ungu",
"hitam", "putih");
// menghapus 4 elemen tengah
// hasil: Array ( [0] => violet [1] => indigo [2] =>
biru
// [3]
=> ungu [4] => hitam [5] => putih )
array_splice($arrayWarna, 3, 4);
print_r($arrayWarna);
// menambah 2 elemen di antara "hitam" dan
"putih"
// hasil: Array ( [0] => violet [1] => indigo [2] =>
biru
// [3]
=> ungu [4] => hitam [5] => perak
// [6]
=> coklat [7] => putih )
array_splice($arrayWarna, 5, 0, array("perak",
"coklat"));
print_r($arrayWarna);
?>
Mengekstrak Segmen-Segmen
Bertetangga Dalam Sebuah Array
Di sini, Anda akan
membaca dua atau lebih elemen-elemen bertetangga dari sebuah array. Anda akan
menggunakan fungsi PHP array_slice().
<?php
// ekstrak_elemen_bertetangga.php
// mendefinisikan array
$arrayWarna = array("violet", "indigo",
"biru", "hijau", "kuning",
"oranye", "merah", "ungu",
"hitam", "putih");
// mengekstrak 4 elemen tengah
// hasil: Array ( [0] => hijau [1] => kuning [2] =>
oranye [3] => merah )
$potong = array_slice($arrayWarna, 3, 4);
print_r($potong);
?>
Menhapus Elemen Duplikat
Pada Array
Pada kasus ini, Anda
akan membuang semua elemen duplikat pada array untuk mendapatkan himpunan
elemen yang unik. Anda akan menggunakan fungsi PHP array_unique().
<?php
// hapus_elemen_duplikat.php
// mendefinisikan sebuah array yang memuat elemen-elemen
duplikat
$arrayAngka =
array(10,20,10,40,35,80,35,50,55,10,55,30,40,70,50,10,35,85,40,90,30);
// menghapus semua elemen unik ke dalam sebuah array baru
// hasil: "10, 20, 40, 35, 80, 50, 55, 30, 70, 85, 90"
echo join(", ", array_unique($arrayAngka));
?>
Mengindeks-Ulang Array
Anda akan
mengindeks-ulang array berindeks secara numerik setelah penghapusan
elemen-elemen. Anda akan menggunakan fungsi array_values().
<?php
// indeks_ulang_array.php
// mendefinisikan array berindeks
$superhero = array(0 => "spiderman", 1 =>
"superman",
2
=> "superboy", 3 => "green lantern");
// menghapus sebuah elemen dari tengah the array
// hasil: (0 => "spiderman", 1 =>
"superman", 3 => "green lantern")
unset ($superhero[2]);
// menata-ulang elemen-elemen array untuk menghapus gap
// hasil: (0 => "spiderman", 1 =>
"superman", 2 => "green lantern")
$superhero = array_values($superhero);
print_r($superhero);
?>
Mengacak Array
Anda akan mengacak
array atau membaca satu atau lebih elemen dari array secara acak. Anda akan
menggunakan fungsi PHP shuffle() dan
array_rand().
<?php
// acak_array.php
// mendefinisikan array yang memuat angka dari 1 sampai 5
$arrayAngka = range(1,5);
// mengacak elemen-elemen array secara acak
// hasil: "3, 5, 1, 2, 4" (contoh)
shuffle($arrayAngka);
echo join (", ", $arrayAngka);
?>
<?php
// mendefinisikan array yang memuat angka dari 1 sampai 12
$arrayAngka = range(1,12);
// mengambil 5 kunci acak dari array
$kunciAcak = array_rand($arrayAngka, 5);
// menampilkan elemen-elemen yang terpilih
// hasil: "3, 5, 1, 2, 4" (contoh)
echo join (", ", $kunciAcak);
?>
Membalik Array
Anda akan membalik
urutan elemen-elemen di dalam array. Anda akan menggunakan fungsi array_reverse().
<?php
// balik_array.php
// mendefinisikan array angka
$arrayAngka = array("satu", "dua",
"tiga", "empat", "lima");
// menghasilkan sebuah array dengan urutan elemen dibalik
// hasil: Array ( [0] => lima [1] => empat [2] => tiga
[3] => dua [4] => satu )
print_r(array_reverse($arrayAngka));
?>
Melakukan Pencarian Pada
Array
Anda akan melakukan
pencarian terhadap suatu kunci atau nilai tertentu pada array. Anda akan
menggunakan fungsi PHP array_key_exists()
atau in_array().
<?php
// pencarian_array.php
// mendefinisikan array asosiatif
$data = array(
"IND" => "Indonesia Raya",
"US" => "United States of America",
"UK" => "United Kingdom",
"AU" => "Australia");
// melakukan pencarian kunci
// hasil: "Kunci ada"
echo array_key_exists("UK", $data) ? "Kunci
ada" : "Kunci tidak ada";
// melakukan pencarian nilai
// hasil: "Nilai ada"
echo in_array("Australia", $data) ? "Nilai
ada" : "Nilai tidak ada";
?>
Harus diakui bahwa
kapabilitas pencarian di sini primitif; kedua fungsi akan menghasilkan false
kecuali jika ditemukan kecocokan. Jika Anda menginginkan kapabilitas pencarian
yang lebih tangguh, Anda bisa menuliskan fungsi pencarian sendiri, sebagai
berikut:
<?php
// fungsiPencarian.php
// fungsi untuk melakukan pencarian kunci dan nilai pada array
function pencarianArray($cari, $argKedua) {
// memeriksa apakah
masukan sebuah array
if
(!is_array($argKedua)) { die ("Argumen kedua bukan sebuah!"); }
// beriterasi pada
foreach ($argKedua as
$kunci=>$nilai) {
// memeriksa kunci
dan nilai apakah cocok atau tidak
// menghasilkan
true jika ada kecocokan
if (preg_match("/$cari/i", $nilai) ||
preg_match("/$cari/i", $kunci)) {
return true;
break;
}
}
}
// mendefinisikan array asosiatif
$data = array(
"IND" => "Indonesia Raya",
"US" => "United States of America",
"UK" => "United Kingdom",
"AU" => "Australia");
// melakukan pencarian
// hasil "Ada Kecocokan"
echo pencarianArray("us", $data) ? "Ada
Kecocokan" : "No match";
// hasil "Tidak Ada Kecocokan"
echo pencarianArray("xz", $data) ? "Ada
Kecocokan" : "Tidak Ada Kecocokan";
?>
Melakukan Pencarian Pada
Array Bersarang
Anda akan melakukan
pencarian pada array bersarang untuk mencari kunci atau nilai tertentu. Anda
juga akan menuliskan sebuah fungsi rekursif untuk menjelajah array bersarang
tersebut.
<?php
// pencarian_array_bersarang.php
// fungsi untuk menjelajah array bersarang secara rekursif
// dan melakukan pencarian nilai yang cocok dengan sebuah pola
function pencarianArrayRekursif($cari, $argKedua,
$path="") {
// memeriksa apakah
masukan adalah sebuah array
if
(!is_array($argKedua)) { die ("Argumen kedua bukan array!"); }
// mendeklarasikan
variabel untuk menampung kecocokan
global $cocok;
// beriterasi pada
array
foreach($argKedua as
$kunci=>$nilai) {
if
(preg_match("/$cari/i", $kunci)) {
$cocok[] =
array($path . "$kunci/", "KUNCI: $kunci");
}
if (is_array($nilai))
{
// jika suatu
array bersarang
// maka melakukan
pencarian rekursif
$path .=
"$kunci/";
pencarianArrayRekursif($cari, $nilai, $path);
unset($path);
} else {
// jika bukan
sebuah array
// memeriksa
kecocokan
// menyimpan path
jika ada kecocokan
if
(preg_match("/$cari/i", $nilai)) {
$cocok[] =
array($path . "$kunci/", "NILAI: $nilai");
}
}
}
// menghasilkan daftar kecocokan
return $cocok;
}
// mendefinisikan array bersarang
$data = array (
"Indonesia
Raya" => array (
"Jakarta",
"Yogyakarta",
"Medan"
=> array (
"Pematang
Siantar",
"Balige" => array(
"Tarabunga"))));
// melakukan pencarian string "an"
// hasil: Array ( [0] => Array (
[0] => Indonesia Raya/Medan/ [1] => KUNCI: Medan )
// [1] => Array ( [0] => Indonesia Raya/Medan/0/ [1] =>
NILAI: Pematang Siantar ) )
print_r(pencarianArrayRekursif("an", $data));
?>
Cara alternatif
untuk melakukan pencarian rekursif pada sebuah array adalah dengan menggunakan
objek RecursiveIteratorIterator dan RecursiveArrayIterator, sebagai berikut:
<?php
// pencarian_array_rekursif.php
// define associative array
// mendefinisikan array bersarang
$data = array (
"Indonesia
Raya" => array (
"Jakarta",
"Yogyakarta",
"Medan"
=> array (
"Pematang
Siantar",
"Balige" => array(
"Tarabunga"))));
// mendefinisikan string pencarian
$cari = "an";
$cocok = array();
// pencarian array secara rekursif
$iterator = new RecursiveIteratorIterator(new
RecursiveArrayIterator ($data));
foreach ($iterator as $nilai) {
if(preg_match("/$cari/i", $nilai)) {
$cocok[] = $nilai;
}
}
// menampilkan nilai-nilai yang cocok
// hasil: Array ( [0] => Pematang Siantar )
print_r($cocok);
?>
Memfilter Elemen Array
Anda akan
mengeliminasi elemen-elemen sebuah array yang tidak sesuai dengan kriteria
tertentu. Anda akan menciptakan sebuah filter menggunakan fungsi array_filter().
<?php
// filter_array.php
// fungsi untuk menguji apakah sebuah angka positif
function apaPositif($nilai) {
return ($nilai > 0)
? true : false;
}
// mendefinisikan array angka
$runtun = array(-10,21,43,-6,5,1,84,1,-32);
// memfilter nilai-nilai positif
// hasil: Array ( [1] => 21 [2]
=> 43 [4] => 5 [5] => 1 [6] => 84 [7] => 1 )
print_r(array_filter($runtun, 'apaPositif'));
?>
Mengurutkan Array
Anda akan
mengurutkan sebuah array berdasarkan kunci atau nilai tertentu. Anda akan
menggunakan fungsi PHP sort() pada
array berindeks numerik.
<?php
// urut_array.php
// mendefinisikan array berindeks
$binatang = array("singa", "rusa",
"tiger", "gajah", "beruang", "zebra",
"harimau");
// mengurutkan berdasarkan nilai
// hasil: Array ( [0] => beruang [1] => gajah [2] =>
harimau [3] => rusa
// [4]
=> singa [5] => tiger [6] => zebra )
sort($binatang);
print_r($binatang);
?>
Kemudian Anda akan
menggunakan fungsi asort() atau ksort() untuk melakukan pengurutan pada
array berindeks string, sebagai berikut:
<?php
// urut_array_indeks_string.php
// mendefinisikan array asosiatif
$binatang = array("singa" => "aku",
"rusa" => "dia",
"tiger" => "mereka", "gajah"
=> "saya", "singa" => "kamu");
// mengurutkan berdasarkan nilai
// hasil: Array ( [rusa] => dia
[singa] => kamu [tiger] => mereka [gajah] => saya )
asort($binatang);
print_r($binatang);
// mengurutkan berdasarkan kunci
// hasil: Array ( [gajah] => saya
[rusa] => dia [singa] => kamu [tiger] => mereka )
ksort($binatang);
print_r($binatang);
?>
Mengurutkan Array
Multidimensi
Di sini, Anda akan
mengurutkan sebuah array multidimensi menggunakan beberapa kunci. Anda akan
menggunakan fungsi array_multisort().
<?php
// urut_array_multidimensi.php
// menciptakan sebuah array multidimensi
$data = array();
$data[0] = array("judul" => "Net Force",
"pengarang" => "Clancy, Tom", "rating" =>
4);
$data[1] = array("judul"
=> "Every Dead Thing", "pengarang" => "Connolly,
John", "rating"=> 5);
$data[2] = array("judul"
=> "Driven To Extremes", "pengarang" => "Allen,
James", "rating" => 4);
$data[3] = array("judul"
=> "Dark Hollow", "pengarang" => "Connolly,
John", "rating" => 4);
$data[4] = array("judul"
=> "Bombay Ice", "pengarang" => "Forbes,
Leslie", "rating" => 5);
// memisahkan semua elemen dengan kunci yang sama
// menjadi array-array individual
foreach ($data as $kunci=>$nilai) {
$pengarang[$kunci] =
$nilai['pengarang'];
$judul[$kunci] =
$nilai['judul'];
$rating[$kunci] =
$nilai['rating'];
}
// mengurutkan berdasarkan rating dan kemudian pengarang
array_multisort($rating, $pengarang, $data);
print_r($data);
?>
Mengurutkan Array
Menggunakan Fungsi Pengurutan Sendiri
Anda akan
mengurutkan sebuah array menggunakan algoritma pengurutan sendiri. Anda akan
mendefinisikan algoritma pengurutan Anda sendiri dan kemudian menggunakan
fungsi usort() untuk memproses
array.
<?php
// fungsi_pengurutan_sendiri.php
// fungsi untuk membandingkan panjang dari dua nilai
function urutPanjang($a, $b) {
if (is_scalar($a)
&& is_scalar($b)) {
if (strlen($a) ==
strlen($b)) {
return 0;
} else {
return
(strlen($a) > strlen($b)) ? 1 : -1;
}
}
}
// mendefinisikan array
$data = array("bhinneka", "tunggal",
"ika",
"nusantara", "indonesia");
// mengurutkan array menggunakan fungsi pengurutan sendiri
// hasil: Array ( [0] => ika [1] => tunggal [2] =>
bhinneka
// [3]
=> indonesia [4] => nusantara )
usort($data, 'urutPanjang');
print_r($data);
?>
Mengurutkan Array Bersarang
Anda akan
mengurutkan array bersarang. Anda akan menuliskan sebuah fungsi rekursif untuk
menjelajah array bersarang dan mengurutkannya.
<?php
// pengurutan_array_bersarang.php
// fungsi untuk membandingkan panjang dari dua nilai
function urutPanjang($a, $b) {
if (is_scalar($a)
&& is_scalar($b)) {
if (strlen($a) ==
strlen($b)) {
return 0;
} else {
return
(strlen($a) > strlen($b)) ? 1 : -1;
}
}
}
// fungsi untuk mengurutkan secara rekursif
// pada array bersarang
function urutRekursif(&$arr, $fungsiUrut, $paramFungsiUrut =
null) {
// memeriksa apakah
masukan berupa array
if (!is_array($arr)) {
die ("Argumen bukan array!"); }
// mengurutkan array
menggunakan nama fungsi
$fungsiUrut($arr,
$paramFungsiUrut);
// memeriksa apakah
array ada
// jika ada, lakukan
pengurutan secara rekursif if so
foreach
(array_keys($arr) as $k) {
if
(is_array($arr[$k])) {
urutRekursif($arr[$k], $fungsiUrut, $paramFungsiUrut);
}
}
}
// mendefinisikan array bersarang
$data = array (
"Indonesia"
=> array (
"Bandung",
"Yogyakarta" => array(
"Bantul", "Sleman"),
"Wates", "Wonosari", "Kulonproga",
"Kota
Yogyakarta" => array (
"Malioboro", "Keraton",
"Mall
Malioboro", "Museum")));
// mengurutkan $data secara rekursif menggunakan asort()
urutRekursif($data, 'asort');
print_r($data);
// mengurutkan $data secara rekursif menggunakan fungsi sendiri
urutRekursif($data, 'usort', 'urutPanjang');
print_r($data);
?>
Menggabungkan Array
Anda akan
menggabungkan dua atau lebih array menjadi satu array. Anda akan menggunakan
fungsi PHP array_merge() atau array_merge_recursive().
<?php
// gabung_array.php
// mendefinisikan array
$propinsiIndo = array("Aceh", "Sumut", "Riau",
"Jambi");
$kabupatenIndo = array("Sleman", "Klaten",
"Magelang");
// menggabungkan menjadi satu array
// hasil: ("Maine", "New York", ...,
"Tamil Nadu", "Kerala")
$indo = array_merge($propinsiIndo, $kabupatenIndo);
print_r($indo);
?>
<?php
// mendefinisikan array
$ab = array("a" => "apel", "b"
=> "bunga");
$ac = array("a" => "alamat",
"c" => "cinta");
$bcd = array("b" =>
"bola", "c" => array("can",
"cantik"), "d" => "desa");
// menggabungkan secara rekursif menjadi satu array
$abcd = array_merge_recursive($ab, $ac, $bcd);
print_r($abcd);
?>
Membandingkan Array
Anda akan
membandingkan dua array untuk mencari elemen-elemen yang sama atau yang
berbeda. Anda akan menggunakan fungsi PHP array_intersect()
untuk mencari elemen-elemen yang sama dari kedua array.
<?php
// iris_array.php
// mendefinisikan array
$basa = array("sodium", "klorin");
$asam = array("hidrogen", "klorin",
"nitrogen");
// mendapatkan semua elemen dari $asam
// yang juga ada di dalam $garam
// hasil: ("klorin")
$irisan = array_intersect($asam, $basa);
print_r($irisan);
?>
Kemudian, Anda akan
menggunakan fungsi array_diff()
untuk mencari elemen-elemen yang ada di salah satu dari kedua array, tetapi
tidak ada di dalam kedua array.
<?php
// selisih_array.php
// mendefinisikan array
$basa = array("sodium", "klorin");
$asam = array("hidrogen", "klorin",
"nitrogen");
// mencari elemen-elemen yang ada di salah satu dari
// kedua array, tetapi tidak ada di dalam kedua array.
// hasil: ("hidrogen", "nitrogen",
"sodium")
$selisih = array_unique(array_merge(
array_diff($asam,
$basa), array_diff($basa, $asam)
));
print_r($selisih);
?>
Perhatikan bahwa
fungsi array_dif() dan array_intersect() hanya membandingkan
nilai-nilai array; kedua fungsi tersebut mengabaikan kunci ketika menghitung
irisan atau selisih array. Anda dapat memperbaikinya dengan menyediakan fungsi array_diff_assoc() dan array_intersect_assoc().
<?php
// iris_selisih_array_perbaiki.php
// mendefinisikan array
$a = array("sodium", "klorin", "hidrogen");
$b = array("klorin", "sodium",
"hidrogen");
// tak-sensitif terhadap kunci
// hasil: ()
print_r(array_diff($a, $b));
// sensitif terhadap kunci
// hasil: ("sodium", "klorin")
print_r(array_diff_assoc($a, $b));
// tak-sensitif terhadap kunci
// hasil: ("sodium", "klorin",
"hidrogen")
print_r(array_intersect($a, $b));
// sensitif terhadap kunci
// hasil: ("hidrogen")
print_r(array_intersect_assoc($a, $b));
?>
Projek: Menghitung Rerata
Kelas
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xml:lang="en" lang="en">
<head>
<title>Projek:
Menghitung Rerata</title>
</head>
<body>
<h2>Projek:
Menghitung Rerata</h2>
<?php
// mendefinisikan array yang memuat nilai-nilai
// dengan rentang 1 dan 100
$arrayNilai = array(
25, 64, 23, 87, 56,
38, 78, 57, 98, 95,
81, 67, 75, 76, 74,
82, 36, 39,
54, 43, 49, 65, 69,
69, 78, 17, 91
);
// menghitung banyaknya nilai
$banyak = count($arrayNilai);
// beriterasi pada arrayNilai
// menghitung total dan atas/bawah 20%
$total = $atas = $bawah = 0;
foreach ($arrayNilai as $g) {
$total += $g;
if ($g <= 20) {
$bawah++;
}
if ($g >= 80) {
$atas++;
}
}
// menghitung rerata
$rerata = round($total / $banyak);
// menampilkan statistik
echo "Rerata kelas: $rerata <br />";
echo "Banyak siswa ada di 20% bawah: $bawah <br
/>";
echo "Banyak siswa ada di 20% atas: $atas <br
/>";
?>
</body>
</html>
No comments:
Post a Comment