I'm currently searching a multidimensional array for keyword matching.. the searching function works great, but I was wondering how I could go about showing the best match first.. basically if it finds an exact match, show that as first result in the array, then show any partial matches?
$results = array_multi_search($array, $keyword);
foreach($results as $row) {
echo $row['name'];
}
function array_multi_search($array, $input){
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator($array));
foreach($iterator as $id => $sub){
$subArray = $iterator->getSubIterator();
if(@strstr(strtolower($sub), strtolower($input))){
$subArray = iterator_to_array($subArray);
$outputArray[] = array_merge($subArray, array('Matched' => $id));
}
}
return $outputArray;
}