//建立一個(gè)$arr的二維數(shù)組 $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), );
介紹倆函數(shù) strnatcmp 和 strncmp
//比較字符串倆個(gè)大小的函數(shù) echo strnatcmp("ac",'ab')."
";//輸出1 echo strncmp("ac",'ab',1)."
";//輸出0 因?yàn)檫@個(gè)函數(shù)有第三個(gè)參數(shù) 限制了僅比較1位 也就是只比較a
//使用 usort 來進(jìn)行排序 使用用戶自定義的比較函數(shù)對(duì)數(shù)組中的值進(jìn)行排序 //按 鍵值 name 大小來排序 usort($arr,function($a,$b){ return strnatcmp($a['name'],$b['name']);// 直接比較 二維數(shù)組的 name字段 進(jìn)行 asc排序 }); dump($arr); //按鍵值 name 的長(zhǎng)度排序 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 ""; print_r($data); echo ""; }
sort 對(duì)數(shù)組排序一般適用于一維索引數(shù)組,不會(huì)保持索引
rsort 對(duì)數(shù)組逆向排序 和sort用法一致
asort 對(duì)數(shù)組進(jìn)行排序并保持索引關(guān)系對(duì)值進(jìn)行排序,一般適用于一維數(shù)組,保持索引關(guān)系
arsort 對(duì)數(shù)組進(jìn)行逆向排序并保持索引關(guān)系和asort用法一致
ksort 對(duì)數(shù)組按照鍵名排序
krsort 對(duì)數(shù)組按照鍵名逆向排序
關(guān)鍵詞: