Array_Unique dan cara membatasi looping

April 5, 2008

Apa itu array unique? Berhubung hari ini lagi semangat bikin postingan soal array, baik itu arraynya cj dan arraynya amazon, nah barusan juga abis selesai bantuin mas is, dan juga masih masalah array :) .. Apa itu array unique? Deskripsi sederhana dari array ini, adalah fungsi array yang bertugas untuk memfilter duplikat value dalam sebuah array. Contoh:

$arr=array(”tes”=>”testing”,”tes2″=>”testing2″,”tes3″=>”testing”,”tes4″=>”blabla”);

Nah variabel di atas, ada value yang sama, yaitu di index “tes” dan index “tes3″. Apa yang terjadi jika kita memakai perintah print_r?

print_r($arr);

//hasilnya adalah:

Array(

[tes]=>testing

[tes2]=>testing2

[tes3]=>testing

[tes4]=>blabla )

Hasilnya sama kan? Nah disinilah array_unique beraksi. Dengan memakai fungsi ini, value testing hanya akan muncul sekali yaitu di index yang pertama.

$arr_unique=array_unique($arr);

Untuk tambahan, fungi print_r setelah saya coba tidak bisa menampilkan hasil dari array_unique. Terus bagaimana caranya menampilkan data?Dari kasusnya mas isnaini, array_unique ini dapat ditampilkan dengan cara looping, yaitu:

foreach($arr_unique as $arr2) { echo $arr2.”<br />”; }

Looping ini dapat akan menampilkan seluruh data dari variabel arr_unique. Hasilnya adalah :

testing testing2 blabla

Perbedaannya adalah, value testing sekarang hanya muncul satu kali. Apa gunanya array ini? Gunanya banyaklah, untuk kegiatan website, seperti memunculkan data, array ini bisa digunakan untuk memfilter data-data yang sama (duplikat data). Ok, array unique lewat. Sekarang mengenai masalah looping yang dalam hal ini memakai fungsi foreach. Sebenarnya jawaban ini untuk mas isnaini sih, tapi gpp lah ya bagi-bagi ilmu. Untuk membatasi looping, awalnya saya mencoba untuk memakai fungsi for($i). Tetapi saya lupa (maklum udah tua :( ), kalau kelemahan looping for($i) ini adalah tidak bisa dipakai di array yang memakai index. Hasil yang didapat kalau memaksakan memakai fungsi ini untuk array_unique adalah value pertama tidak akan ditampilkan. Kenapa? Weits, saya juga tidak tahu jawabannya kalau ditanya kenapa :p..Sedangkan kalau memakain foreach, maka kemungkinan besar seluruh data akan muncul (seperti yang ditanyakan mas is), terus piye? Berikut adalah hasil olah imajinasi kode saya (halah-halah bahasane muter2 :) ) :

//pertama inisialisasi variabel pembatas (ckck..keren euy bahasane)

$batas=2 //terserah yg bikin kode ntar mo dibatasi berapa, tergantung jumlah data juga dari contoh diatas jumlah data di array_unique adalah 3.

//inisialisasi index $i=0;

//gunakan fungsi looping foreach seperti biasa

foreach($arr_unique as $arr2) {

//bikin alur pembatas dimulai

$i++;

if($i==$batas) {

break;

//looping diputus

}else{

echo $arr2.”<br />”;

} } //hasilnya adalah testing testing2

Hanya menampilkan dua data kan dari jumlah 3 data? For mas is, jawabannya ini mas :) ..Btw kalau ada yg punya alur yang lain bisa lho dishare disini, akan sangat berguna untuk saya yang newbie ini :)



Entry Filed under: My Code Think. Tags: , , .

Leave a Comment

Required

Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <pre> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed


Asalbaca aja

ObrolanSantai

JoinCommunity

Kata2Waton

a

GudangTulisan

Blogroll

FEEdMe

GakPenting

Blog Stats