php的二維數組排序


//建立一個$arr的二維數組
$arr=array(
    array('name'=>'e','age'=>5),
    array('name'=>'b','age'=>2),
    array('name'=>'a','age'=>1),
    array('name'=>'c','age'=>3),
    array('name'=>'d','age'=>4),
    ); 

 

 

介紹倆函數  strnatcmp  和  strncmp

    //比較字符串倆個大小的函數
    echo strnatcmp("ac",'ab')."<br/>";//輸出1
    echo strncmp("ac",'ab',1)."<br/>";//輸出0  因為這個函數有第三個參數 限制了僅比較1位  也就是只比較a

 

    //使用   usort  來進行排序  使用用戶自定義的比較函數對數組中的值進行排序 

    //按 鍵值  name 大小來排序
    usort($arr,function($a,$b){
        return  strnatcmp($a['name'],$b['name']);//  直接比較 二維數組的 name字段  進行 asc排序
    });
    dump($arr);

    //按鍵值  name 的長度排序
    usort($arr,function ($a,$b)
    {
        if(strlen($a['name'])==strlen($b['name']))
            return 0;
        return (strlen($a['name']) > strlen($b['name']))?1:0;
    });
    dump($arr);


打印函數

        function dump($data)
    {
        echo "<pre>";
        print_r($data);
        echo "</pre>";
    }

 

 

 

sort 對數組排序一般適用於一維索引數組,不會保持索引

rsort 對數組逆向排序 和sort用法一致

asort 對數組進行排序並保持索引關系對值進行排序,一般適用於一維數組,保持索引關系

arsort 對數組進行逆向排序並保持索引關系和asort用法一致

ksort 對數組按照鍵名排序

krsort 對數組按照鍵名逆向排序

 


免責聲明!

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



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