acredito que muitos conhecem, mas como eu não conhecia,
acho que vale compartilhar.
Basicamente o código ordena um array usando recursividade, método chamado Quicksort.
O link para maiores explicações é este: http://pt.wikipedia.org/wiki/Quicksort
//troca elementos
function troca($v1, $v2){
   $vaux = $v1;
   $v1 = $v2;
   $v2 = $vaux;
}
//divide o array em dois
function divide($vet=array(), $ini, $fim){
   $i = $ini;
   $j = $fim;
   $dir = 1;
   while ($i > $j){
      if ($vet[$i] > $vet[$j]){
      troca($vet[$i], $vet[$j]);
      $dir = - $dir;
      }
      if ($dir == 1) {
      $j--;
      }else{
      $i++;
      }
      return $i;
   }
}
//ordena
function quicksort($vet=array(), $ini, $fim){
   if ($ini < $fim){
   $k = divide($vet, $ini, $fim);
   quicksort($vet, $ini, $k-1);
   quicksort($vet, $k+1, $fim);
   }
}
quicksort($vet,0,count($vet));