PHP Get Array Key from Value?

Untuk mendapatkan nilai dari array itu sangatlah mudah jika kita tahu ada kunci dari array-nya (arraykey), meskipun itu adalah sebuah assosiatif array. Berbanding terbalik jika kita ingin mengetahui array key-nya dari nilainya. Banyak cara yang digunakan. Apalagi, isi dari key ini bisa apa saja, bisa string, integer, array bahkan array of objek. Tentu ini akan sangat mengerikan.

Identifikasi Isi Array

Ada beberapa cara untuk mengetahui arraykey ini, tapi pertama-tama kita harus mencoba mengidentifikasi, isi dari array tersebut. Berharaplah isi dari array nya itu adalah Bukan Array atau Objek. Kenapa demikian, karena ini harus menggunakan jurus rahasia terakhir yang ada dibagian akhir artikel ini. Jadi sabar ya, tenang saja akan saya share juga dengan contoh kodingnya.

Mencari ArrayKey dengan fungsi array_search

Beruntung sekali jika isi dari array yang akan kita cari adalah integer atau string karena kita bisa menggunakan fungsi dari bawaan array_search(). Kita bisa melakukan fungsi ini hanya dengan satu baris saja.

Bentuk Umum

Fungsi array_search memiliki bentuk umum yaitu,

array_search($keyword,$var_array);

 

Contoh Koding

Anggap saja ada array pegawai, isinya cuma Nama Pegawai.

//inisialiasi array yang nantinya akan diisi nama pegawai
$si_array = array();

$si_array[0] = "Miftahul Fadil";
$si_array[1] = "Rifky AL Casdy";
$si_array[2] = "Adhitya Perdana";

//dst...

//kasusnya adalah kita akan mencari al casdy ada di array key berapa.

//lakukan penelusuran array
$ketemu = array_search($keyword,$var_array);
//mulai dari gerbang logika
if($ketemu>=0){
echo 'Al Casdy ketemu di array key :'.$ketemu;
}else{
echo 'Sorry bro, gw susah nyari si Rifki';
}

 
Mudah bukan ya? hehehe. Tapi ini bisa jadi Horor apabila isi dari arraynya adalah array of objek, atau array of array. Lets we see, what will be gonna happen 😉

Jalan Terakhir

Jika array key yang ingin anda cari adalah array of array, atau array of objek mau tidak mau anda harus menggunakan penelusuran jauh kedalam isi array. Dengan demikian, tidak ada cara mudah untuk mendapatkanya. Meskipun kasusnya akan sama yaitu hanya mencari nama, tapi tentu butuh effort yang besar. Dari tadinya cuman butuh 1 baris saja, dengan beda tipe data saja bisa beberapa baris dihabiskan.

Logika

Anggap saja kita mempunyai array of object dimana didalamnya ada beberapa elemen yang harus kita cari. Seperti kasus pertama.

Koding

Berikut ini adalah kodingnya.

//inisialiasi array
$si_array = array();

//mmebuat objet baru
$c = new stdClass();
$c->id = 1;
$c->nama = "Miftahul Fadil";

//memasukan ke si array
$si_array[0] = $c;

//membuat objek baru ke 2
$c = new stdClass();
$c->id = 2;
$c->nama = "Rifky AL Casdy";
//memasukan ke array
$si_array[1] = 2;

//dst...

//kasusnya adalah kita akan mencari al casdy ada di array key berapa.

//lakukan penelusuran array
$ketemu = -1; //karena 0 bsia dianggap array key
foreach($si_array as $key=>$si){
if($si->nama == "Rifky Al Casdy"){
$ketemu = $key;
}
if($ketemu>=0){
echo 'Al Casdy ketemu di array key :'.$ketemu;
}else{
echo 'Sorry bro, gw susah nyari si Rifki';
}

Demikian. Semoga Membantu.

nyingspot: Blog Seputar Bisnis Teknologi. Temukan hal menarik tentang bisnis dan teknologi hanya di nyingspot.com
Artikel Lainnya

This website uses cookies.