php页面中
//把二维数组中的值按序,可键值不变,再把此数组输出来,如
$arr = array (  
'0' => array ( 'num' => 4 ),  
'1' => array ( 'num' => 3 ), 
'2' => array ( 'num' => 1 ),  
'3' => array ( 'num' => 2 ),  
);
//按要求应该输出,如下
$arr = array (  
'0' => array ( 'num' => 4 ),  
'1' => array ( 'num' => 3 ), 
'2' => array ( 'num' => 2 ),  
'3' => array ( 'num' => 1 ),  
);
//这应该如何实现,thanks

解决方案 »

  1.   


    //作者 唠叨老大/**   排序键 
      */ 
    $cmp_key   =   "num"; /**   排序用工作函数(降序   由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($arr, "_cmp_desc"); 
    print_r($arr);
      

  2.   


    foreach ($arr as $key => $v) {
        $num[$key]  = $v['num'];
    }
    array_multisort($num, SORT_NUMERIC, SORT_DESC, $arr);
    print_r($arr);
      

  3.   


    $arr = array (  
    '0' => array ( 'num' => 4 ),  
    '1' => array ( 'num' => 3 ), 
    '2' => array ( 'num' => 1 ),  
    '3' => array ( 'num' => 2 ),  
    );
    function mysort($a,$b)
    {
    if ($a['num'] == $b['num']) return 0;
       return ($a['num'] > $b['num']) ? -1 : 1;
    }
    uasort($arr,mysort);
    echo "<pre>";
    print_r($arr);
    echo "</pre>";结果
    Array
    (
        [0] => Array
            (
                [num] => 4
            )    [1] => Array
            (
                [num] => 3
            )    [3] => Array
            (
                [num] => 2
            )    [2] => Array
            (
                [num] => 1
            ))