I have this multidimensional array. I need to search it and return only the matched and partial matched values. The resulted array should be same as original array dimension or structure . I need a function like:
function search_array($array,'kumar') { ....... }
My Array is
$array  = array(
    0 => array(
        2 => 'ram kumar',
        1 => 'alagu jubi',
        0 => 'kumar',
    ),
    1 => array(
        3 => 'senthil pandian',
        2 => 'jubi alagu',
        1 => 'manikandan',
        0 => array(
            2 => 'jancy',
            1 => 'guru',
            0 => 'rajesh kumar'
        )
    ),
    2 => array(
        2 => 'pandi',
        1 => 'selva',
        0 => 'ajith'
    )
);
Expected Result:
array
    (
    [0] => array
        (
            [2] => ram kumar
            [0] => kumar
        )
    [1] => array
        (
            [0] => array
                (
                    [0] => rajesh kumar
                )
        )
)
I try with this
function search_array($array, $val){
  $ArrIterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array)); 
  foreach($ArrIterator as $id => $sub){
    $childArray = $ArrIterator->getSubIterator();
    if(strstr(strtolower($sub), strtolower($val))){
      $childArray = iterator_to_array($childArray);
      $result[] = $childArray;
    }
  }     
  return $result;
}
$resultsMul = search_array($array, 'kumar');
Its returns like this .
Array
(
    [0] => Array
        (
            [2] => ram kumar
            [1] => alagu jubi
            [0] => kumar
        )
    [1] => Array
        (
            [2] => jancy
            [1] => guru
            [0] => rajesh kumar
        )
)
But I need only the matched and partial matched values with the original array dimension.
What is efficient/best way to handle this? My array has nearly 200 000 records (may increase) and this array is global for my website (like a database).
 
     
     
     
    