You need to define what it means to "sort matching the search string the closest". If you can define an algorithm for closeness to an arbitrary search string then you can implement a search block/selector that you could use to sort the array into "closest to search string" order.
EDIT:
You could sort your strings based on their alphabetic distance from your match string. That would be odd, however, since if your search string is "jjj" and your list is "aaa" "bbb" "iii" "jjj" "kkk" "yyy" "zzz" your result array would be
"jjj" "kkk" "iii" "yyy" "bbb" "zzz" "aaa"
The results would not be in alphabetical order at all, but rather in order based on how close they fall alphabetically to your match string.
To do that sort, you'd need a way to represent each string numerically.
Off the top of my head, here's how I would do that:
convert each letter to a value 1-26 (a=1, z=26)
Start with a value of zero.
For the first letter, add it's value to the string value
For the second letter, add letter_value X 26^-1 (letter value times 26 to the minus 1 power) For the third letter, add letter_value X 26^-2
And so on.
That would add increasingly smaller values for each digit.
Now build an array of objects that contain both the string and the absolute value of the difference between each string and your match string
Now sort the array based on it's "distance" value.
Since this method uses fractional exponents to calculate values it would be slow to come up with the sort keys, but it should work