PHP中數組按鍵名和鍵值排序函數
來源:程序員人生 發布時間:2013-10-24 20:27:00 閱讀次數:2408次
大家知道,數組排序最常用的函數就是 sort($arr); 它的作用是按數組的鍵值升序排列,并且排序后的數組鍵名不再是原來的鍵名,是按新數組來重新設置的鍵名,而有時我們要求更復雜的排序,如按鍵名排序,這里用到 ksort($arr); 函數,它會根據數組的鍵名排序,并維持原有的鍵值關系,相對應的 asort($arr); 函數,是按鍵值排序,且維持原有的鍵值關系,同樣原理,rsort(); arsort(); krsort(); 函數除了排序是按降序排列外,其它與sort(); rsort(); ksort(); 相同,數組操作是PHP很重要的基礎,希望能好好運用,一維數組例子.
實例代碼如下:
- function my_sort($a, $b)
- {
- if ($a == $b) return 0;
- return ($a > $b) ? -1 : 1;
- }
- $people = array("Swanson" => "Joe",
- "Griffin" => "Peter", "Quagmire" => "Glenn",
- "swanson" => "joe", "griffin" => "peter",
- "quagmire" => "glenn");
- uksort($people, "my_sort");
- print_r ($people);
- ?>
輸出:
- Array
- (
- [swanson] => joe
- [quagmire] => glenn
- [griffin] => peter
- [Swanson] => Joe
- [Quagmire] => Glenn
- [Griffin] => Peter
- )
如下面這個二維數組,需要按照sort鍵名來排序,那么array_multisort() 就無法直接實現了:
實例代碼如下:
- $data[5] = array('volume' => 67, 'edition' => 2);
- $data[4] = array('volume' => 86, 'edition' => 1);
- $data[2] = array('volume' => 85, 'edition' => 6);
- $data[3] = array('volume' => 98, 'edition' => 2);
- $data[1] = array('volume' => 86, 'edition' => 6);
- $data[6] = array('volume' => 67, 'edition' => 7);
-
- foreach ($data as $k => $v) {
- $edition[] = $v['edition'];
- }
- array_multisort($edition, SORT_ASC, $data);
- print_r($data);將輸出:
- Array
- (
- [0] => Array
- (
- [volume] => 86
- [edition] => 1
- )
- [1] => Array
- (
- [volume] => 67
- [edition] => 2
- )
- [2] => Array
- (
- [volume] => 98
- [edition] => 2
- )
- [3] => Array
- (
- [volume] => 85
- [edition] => 6
- )
- [4] => Array
- (
- [volume] => 86
- [edition] => 6
- )
- [5] => Array
- (
- [volume] => 67
- [edition] => 7
- )
- )
•sort() 函數用于對數組單元從低到高進行排序,
•rsort() 函數用于對數組單元從高到低進行排序,
•asort() 函數用于對數組單元從低到高進行排序并保持索引關系,
•arsort() 函數用于對數組單元從高到低進行排序并保持索引關系,
•ksort() 函數用于對數組單元按照鍵名從低到高進行排序,
•krsort() 函數用于對數組單元按照鍵名從高到低進行排序.
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈