嵌套数组中的Search_array

I've got an array with nested arrays, and I was trying to use the *search_array* function to sift through the array and give me back their keys. It hasn't been working. Here's the code:

<?php 
$array = array(
   'cat1' => array(1,2,3),
   'cat2' => array(4,5,6),
   'cat3' => array(7,8,9),
);

foreach($array as $cat){
   if(is_array($cat)
      echo array_search(5,$cat); //want it to return 'cat2'
   else
      echo array_search(5,$array);
}

Thanks!

If you always have a two-dimensional array, then it is as easy as:

function find($needle, $haystack) {
    foreach($haystack as $key=>$value){
       if(is_array($value) && array_search($needle, $value) !== false) {
          return $key;
       }
    }
    return false;
}

$cat = find(5, $array);
function mySearch($haystack, $needle, $index = null)
{
    $aIt   = new RecursiveArrayIterator($haystack);
    $it    = new RecursiveIteratorIterator($aIt);   
    while($it->valid())
    {       
        if (((isset($index) AND ($it->key() == $index)) OR (!isset($index))) AND ($it->current() == $needle)) {
            return $aIt->key();
        }       
        $it->next();
    }   
    return false;
}

$array = array(
   'cat1' => array(1,2,3),
   'cat2' => array(4,5,6),
   'cat3' => array(7,8,9),
);

echo $arr_key = mySearch($array, 5); 

this will give u the answer