Я примерно понял, что нужно делать. Чисто по доброте душевной отмечу ваш ответ как решение. Но мне всегда было непонятно одно: почему в таких сообществах, как тот же Хабр, так любят опускать людей? Вас никто не заставляет мне отвечать или делать за меня мою работу. Я всего лишь задал вопрос, в надежде получить помощь. Хотя бы в каком направлении мне двигаться. Да, я знаю, что код далеко не хороший, но вы своими комментариями и отношением к таким людям, которым нужна помощь, ведёте себя просто по-свински. Если бы всё было в порядке с кодом, то я бы сюда даже не обращался. По поводу тех же умников, которые говорят за документацию и "говнокоды", тоже скажу, что некоторые моменты в документации могут быть непонятны или не в полной мере ответить на мой вопрос. Я понимаю, что все вы умные, много работаете и разбираетесь в своей сфере. Но вспомните себя, когда вы сами такими были. Вот пишете вы, а стыдно мне. Вы ещё более-менее адекватно ответили на мой вопрос, но за остальных скажу, что залезть в комментарии и написать "говнокод" много ума не надо. Если не можете помочь или не хотите, то не нужно в лишний раз самоутверждаться за счёт чужих ошибок, это низко. Человек учится, а вы грязью поливаете.
JhaoDa, читал документацию, но на свой вопрос не нашёл ответа. А эту часть кода взял с другого поста и пока так оставил, чтобы было примерно понятно, что мне нужно. Если не можете помочь – проходите мимо, не нужно постоянно кричать всем подряд эту фразу. Если я обратился сюда за помощью, значит я не нашёл ответа для себя в документации и гугле. Если хотите помочь, то тыкните это место в документации, если оно там есть.
Готовые функции, конечно, удобные, но всё же это нужно реализовать своими руками. Я бы и сам через готовую сортировку сделал бы. Но всё равно спасибо за отклик.