php一維二維數組鍵排序方法總結
來源:程序員人生 發布時間:2013-11-21 21:48:33 閱讀次數:3421次
在php中數組排序一直是一個老生常談的問題,下面我們來集中講一下關于在php中一維數組與二維數組排序的實現程序,各位同學可參考.
功能:對數組進行重新排序.
說明:冒泡排序 (一維數組)(二維數組某個健排序)
兩兩比較待排序數據元素的大小,發現兩個數據元素的次序相反時即進行交換,直到沒有反序的數據元素為止
設想被排序的數組R[1..N] 垂直豎立,將每個數據元素看作有重量的氣泡,從下往上掃描數組,凡掃描違反原則的輕氣泡,就使其向上”漂浮”,如此反復進行,直到最后任何兩個氣都是輕者在上,重者在下為止,代碼如下:
-
-
-
-
-
-
- function bubble_sort($array,$key=null) {
- $count = count($array);
- if($count < 0) {
- return false;
- }
- for($i = 0; $i < $count; $i++) {
- for($j = $count - 1; $j > $i; $j--) {
- if($key && isset($array[$key])){
- if($array[$j][$key] < $array[$j - 1][$key]) {
- $tmp = $array[$j];
- $array[$j] = $array[$j - 1];
- $array[$j - 1] = $tmp;
- }
- }else{
- if($array[$j] < $array[$j - 1]) {
- $tmp = $array[$j];
- $array[$j] = $array[$j - 1];
- $array[$j - 1] = $tmp;
- }
- }
- }
- }
- return $array;
- }
array_multisort排序使用方法
array_multisort() 對二位數組按照指定鍵值排序的使用方法,本例中定義了一個名為 $data 的二維數組,然后對它進行排序,方法代碼如下:
- $data[] = array('volume' => 67, 'edition' => 2);
- $data[] = array('volume' => 86, 'edition' => 1);
- $data[] = array('volume' => 85, 'edition' => 6);
- $data[] = array('volume' => 98, 'edition' => 2);
- $data[] = array('volume' => 86, 'edition' => 6);
- $data[] = array('volume' => 67, 'edition' => 7);
-
-
- foreach ($data as $key => $row) {
- $volume[$key] = $row['volume'];
- $edition[$key] = $row['edition'];
- }
-
-
-
- array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);
-
- print_r($data);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
一維數組排序我們只要使用sort()就可以了,相對應的 asort($arr); 函數是按鍵值排序,且維持原有的鍵值關系。
同樣原理,rsort(); arsort(); krsort(); 函數除了排序是按降序排列外,其它與sort(); rsort(); ksort(); 相同。
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈