Searching Array Multidimensi di PHP

Emm….. kmarin aku nemui kasus di project yang sedang ku kerjain. Yaitu tentang shopping cart / keranjang belanja. Sekedar info ini shopping cart miliknya CodeIgniter 1.7.2. hehehe.  Bentuk fisik dari shopping cart ku ini berupa array dengan susunan seperti berikut:


$shopping_cart = Array
(

 'c81e728d9d4c2f636f067f89cc14862c' => Array

 (
 'rowid' => 'c81e728d9d4c2f636f067f89cc14862c',

 'id' => 2,
 'qty' => 4,

 'price' => 400000,
 'name' => 'Tas Kondangan',

 'size' => '15 x 15 x 15',
 'color' => 'hitam',

 'subtotal' => 1600000
 ),

 'a87ff679a2f3e71d9181a67b7542122c' => Array
 (

 'rowid' => 'a87ff679a2f3e71d9181a67b7542122c',
 'id' => 4,

 'qty' => 1,
 'price' => 550000,

 'name' => 'Tas Gendong',
 'size' => '30 x 30 x 30',

 'color' => 'Merah',
 'subtotal' => 550000,

 )

);

Nah dari data array itu kan terlihat ada 2 item barang yang dibedakan dengan rowid. Permasalahan yang ingin ku pecahkan adalah “bagaimana mendapatkan informasi quantitas (qty) suatu barang dengan kunci (rowid) tertentu???”. Harapannya aku mempunyai sebuah fungsi pencarian array yang mampu melaksanakan itu. Jadi misal  ak memberikan kepada fungsi tersebut sebuah parameter rowid = a87ff679a2f3e71d9181a67b7542122c , maka aku pengen fungsi itu memberikan informasi / nilai qty = 4. Hmm…. ak trus terang gak iso nek gawe dewe. hehe.  Seperti yang ku katakan pada postingan sebelumnya bahwa aku adalah web programmer dengan problem solving yang rendah...:(. Jadi ya tanya pak dhe Google aja “array multidemension search in php“. Dan berikut ini adalah fungsi dan contoh pemanggilan fungsi yang ku dapatkan:


function search($array, $key, $value)
{
 $results = array();

 if (is_array($array))
 {
 if ($array[$key] == $value)
 $results[] = $array;

 foreach ($array as $subarray)
 $results = array_merge($results, search($subarray, $key, $value));
 }

 return $results;
}

// pemanggilan fungsi
$data = search($shopping_cart, 'rowid', 'a87ff679a2f3e71d9181a67b7542122c');

print_r($data[0]['id']);

Dengan fungsi itu alhmdulillah ak bisa mendapatkan apa yang ku inginkan di depan, dan aku bisa melanjutkan pekerjaan selanjutnya… Semoga bermanfaat….:)

Source : http://stackoverflow.com/questions/1019076/how-to-search-by-keyvalue-in-a-multidimensional-array-in-php