Glad you figured it out. Took me too long to replicate you data. Here is an alternative method...
<div id="debugger"></div>
<script type="text/javascript">
// Modified from: http://answers.yahoo.com/question/index?qid=20070718104153AA232co
function addMarkerObj(arr, nam, num){ arr[arr.length] = {distance:num, name:nam}; }
function sortNumberObj(a, b){ return a.distance - b.distance; } //no need for an array index with objects
function sortAlphaObj(a, b){ return a.name.toLowerCase() > b.name.toLowerCase(); } //no need for an array index with objects
function displayMarkersObj(arr){
var str = "";
for(var i = 0; i < arr.length; i++) {
str += "<br>distance: " + arr[i].distance + " name: " + arr[i].name; // change display sequence as desired
}
return str;
}
var rmarkers = [];
addMarkerObj(rmarkers, 'APPLE', 1.0051);
addMarkerObj(rmarkers, 'APPLE', 1.1071);
addMarkerObj(rmarkers, 'APPLE', 11.1592);
addMarkerObj(rmarkers, 'APPLE', 12.0692);
addMarkerObj(rmarkers, 'APPLE', 12.1717);
addMarkerObj(rmarkers, 'APPLE', 2.0186);
addMarkerObj(rmarkers, 'APPLE', 21.1407);
addMarkerObj(rmarkers, 'APPLE', 22.089);
addMarkerObj(rmarkers, 'APPLE', 23.069);
addMarkerObj(rmarkers, 'BANANA', 1.0051);
addMarkerObj(rmarkers, 'BANANA', 1.1071);
addMarkerObj(rmarkers, 'BANANA', 11.1592);
addMarkerObj(rmarkers, 'BANANA', 12.0692);
addMarkerObj(rmarkers, 'BANANA', 12.1717);
addMarkerObj(rmarkers, 'BANANA', 2.0186);
addMarkerObj(rmarkers, 'BANANA', 21.1407);
addMarkerObj(rmarkers, 'BANANA', 22.089);
addMarkerObj(rmarkers, 'BANANA', 23.069);
var str = '';
str = displayMarkersObj(rmarkers);
document.getElementById('debugger').innerHTML = 'Un-sorted:'+str;
rmarkers.sort(sortNumberObj);
str = displayMarkersObj(rmarkers);
document.getElementById('debugger').innerHTML += '<p>Distance sort:'+str;
rmarkers.sort(sortAlphaObj);
str = displayMarkersObj(rmarkers);
document.getElementById('debugger').innerHTML += '<p>Name sort:'+str;
</script>