求usort的比较函数排序原理,手册上的用法就没必要说咯。

解决方案 »

  1.   

    $ar = array(2,4,6,8,9,5,7,3);function sortasc($a, $b) {
      return strcasecmp($a, $b);
    }function sortdesc($a, $b) {
      return strcasecmp($b, $a);
    }usort($ar, 'sortasc');
    print_r($ar); //Array ( [0] => 2 [1] => 3 [2] => 4 [3] => 5 [4] => 6 [5] => 7 [6] => 8 [7] => 9 )usort($ar, 'sortdesc');
    print_r($ar); //Array ( [0] => 9 [1] => 8 [2] => 7 [3] => 6 [4] => 5 [5] => 4 [6] => 3 [7] => 2 )排序的内部算法没有追究的必要,总之应该是用 C 比较容易实现且效率较高的算法
    排序免不了要比较元素的大小,usort 将比较的工作交给用户完成
      

  2.   

    php所有的数组排序核心算法,都是通过zend_qsort完成的
    看名字也基本猜得出来,是quick sort了,复杂度nlogn,详细原理自己查源码啦
      

  3.   

    忘记说了,源码有个zend_qsort.c这个文件,,全部内容就是一个快排