二維數組排序問題


//將二維數組按某一元素的降序或者升序來重新排序,
//
//方法一.以下.稍微復雜一點
    $arrUsers = array(  
        array(  
                'id'   => 1,  
                'name' => '張三',  
                'age'  => 25,  
        ),  
        array(  
                'id'   => 2,  
                'name' => '李四',  
                'age'  => 23,  
        ),  
        array(  
                'id'   => 3,  
                'name' => '王五',  
                'age'  => 40,  
        ),  
        array(  
                'id'   => 4,  
                'name' => '趙六',  
                'age'  => 31,  
        ),  
        array(  
                'id'   => 5,  
                'name' => '黃七',  
                'age'  => 20,  
        ),  
    );   
      
      
    $sort = array(  
            'direction' => 'SORT_DESC', //排序順序標志 SORT_DESC 降序;SORT_ASC 升序  
            'field'     => 'age',       //排序字段  
    );  
    $arrSort = array();  
    foreach($arrUsers AS $uniqid => $row){  
        foreach($row AS $key=>$value){  
            $arrSort[$key][$uniqid] = $value;  
        }  
    }  
    if($sort['direction']){  
        array_multisort($arrSort[$sort['field']], constant($sort['direction']), $arrUsers);  
    }  
      
    var_dump($arrUsers);  




    //方法二.簡單一點的方法,$field需要排序的鍵,
    //array_multisort() 函數返回排序數組:
    //array_multisort — 對多個數組或多維數組進行排序
    $field = 'age';
    array_multisort(array_column($arr, $field), SORT_DESC, $arr);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM