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).