/** 排序键
 * 用于指示二维数组中排序的列
 */
$cmp_key = "";/** 排序用工作函数(降序 由usort()调用)
 */
function _cmp_desc($a,$b) {
  global $cmp_key;
  if ($a[$cmp_key] == $b[$cmp_key]) return 0;
  return ($a[$cmp_key] > $b[$cmp_key]) ? -1 : 1;
}/** 排序用工作函数(升序 由usort()调用)
 */
function _cmp_asc($a,$b) {
  global $cmp_key;
  if ($a[$cmp_key] == $b[$cmp_key]) return 0;
  return ($a[$cmp_key] > $b[$cmp_key]) ? 1 : -1;
}usort($ar,"_cmp_asc"); // 升序 
usort($ar,"_cmp_desc"); // 升序 

解决方案 »

  1.   

    可能说得不清楚:
    Array
    (
        [0] => Array
            (
                [id] => 0
                [name] => psher
            )    [1] => Array
            (
                [id] => 2
                [name] => episome
            )    [2] => Array
            (
                [id] => 1
                [name] => 中国人
            ))就是怎么对这个数组按照name排序的函数
      

  2.   

    从上例
    $ar = array(
      array(id=>0,name=>"psher"),
      array(id=>2,name=>"episome"),
      array(id=>1,name=>"中国人")
    );
    $cmp_key = "name";
    usort($ar,"_cmp_asc"); // 升序 
    print_r($ar);
    /* 结果
    Array
    (
        [0] => Array
            (
                [id] => 2
                [name] => episome
            )    [1] => Array
            (
                [id] => 0
                [name] => psher
            )    [2] => Array
            (
                [id] => 1
                [name] => 中国人
            ))
    */
    usort($ar,"_cmp_desc"); // 降序 
    print_r($ar);
    /* 结果
    Array
    (
        [0] => Array
            (
                [id] => 1
                [name] => 中国人
            )    [1] => Array
            (
                [id] => 0
                [name] => psher
            )    [2] => Array
            (
                [id] => 2
                [name] => episome
            ))
    */
      

  3.   

    感谢ing
    我也想用
    $ar = array(
      "0"=>array(id=>0,name=>"psher"),
      "2"=>array(id=>2,name=>"episome"),
      "4"=>array(id=>1,name=>"中国人")
    );$field="name";foreach($ar as $key=>$ary)
    $Sort[$key]=$ary[$field];print_r($Sort);array_multisort($Sort, SORT_STRING, SORT_DESC);print_r($Sort);可是键值没有被关联上,有没有让键值也关联上的
    希望继续深入一下
      

  4.   

    唠叨) 哥们,你的方法把usort改成uasort就OK了,再次感谢