php关联数组快速排序的方法

这篇文章主要介绍了php关联数组快速排序的方法,涉及php数组排序的相关技巧,非常具有实用价值,需要的朋友可以参考下,本文实例讲述了php关联数组快速排序的方法,分享给大家供大家参考,具体如下:

  1. <?php
  2. function qsort($a,$f) {
  3. qsort_do(&$a,0,Count($a)-1,$f);
  4. }
  5. function qsort_do($a,$l,$r,$f) {
  6. if ($l < $r) {
  7. qsort_partition(&$a,$l,$r,&$lp,&$rp,$f);
  8. qsort_do(&$a,$l,$lp,$f);
  9. qsort_do(&$a,$rp,$r,$f);
  10. }
  11. }
  12. function qsort_partition($a,$l,$r,$lp,$rp,$f) {
  13. $i = $l+1;
  14. $j = $l+1;
  15. while ($j <= $r) {
  16. if ($f($a[$j],$a[$l])) {
  17. $tmp = $a[$j];
  18. $a[$j] = $a[$i];
  19. $a[$i] = $tmp;
  20. $i++;
  21. }
  22. $j++;
  23. }
  24. $x = $a[$l];
  25. $a[$l] = $a[$i-1];
  26. $a[$i-1] = $x;
  27. $lp = $i - 2;
  28. $rp = $i;
  29. }
  30. ?>