自己定義的陣列排續,不外乎就是以下三個函數:usort、uasort、uksort
以下是完整的程式碼
以下是印出結果
看到結果,應該很明瞭的看的出來,uasort 跟 uksort 會保留陣列裡的 keys,所以就依照自己的需求寫屬於自己的排序 function 吧!
以下是完整的程式碼
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?php /** 初始資料設定 **/ $id = array(0=>'#0001',1=>'#0002'); //給usort測試的陣列 $u_data[$id[0]] = array('date'=>'2012-08-12','note'=>'上海出差'); $u_data[$id[1]] = array('date'=>'2012-08-17','note'=>'北京出差'); //給uasort測試的陣列 $ua_data[$id[0]] = array('date'=>'2012-08-12','note'=>'上海出差'); $ua_data[$id[1]] = array('date'=>'2012-08-17','note'=>'北京出差'); //給uksort測試的陣列 $uk_data[$id[0]] = array('date'=>'2012-08-12','note'=>'上海出差'); $uk_data[$id[1]] = array('date'=>'2012-08-17','note'=>'北京出差'); /** 自己定義的函式 **/ function mySort($arr1, $arr2){ return substr_compare($arr1['date'], $arr2['date'], 0); } /** 進行usort **/ usort($u_data , 'mySort'); /** 印出陣列 **/ print_r($u_data); /** 進行uasort **/ uasort($ua_data , 'mySort'); /** 印出陣列 **/ print_r($ua_data); /** 進行uksort **/ uksort($uk_data , 'mySort'); /** 印出陣列 **/ print_r($uk_data); ?> |
以下是印出結果
Array ( [0] => Array ( [date] => 2012-08-12 [note] => 上海出差 ) [1] => Array ( [date] => 2012-08-17 [note] => 北京出差 ) ) Array ( [#0001] => Array ( [date] => 2012-08-12 [note] => 上海出差 ) [#0002] => Array ( [date] => 2012-08-17 [note] => 北京出差 ) ) Array ( [#0002] => Array ( [date] => 2012-08-17 [note] => 北京出差 ) [#0001] => Array ( [date] => 2012-08-12 [note] => 上海出差 ) )
看到結果,應該很明瞭的看的出來,uasort 跟 uksort 會保留陣列裡的 keys,所以就依照自己的需求寫屬於自己的排序 function 吧!
留言
張貼留言