php多维数组搜索,首先排序最佳匹配

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;
}