多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > php教程 > php一維二維數組鍵排序方法總結

php一維二維數組鍵排序方法總結

來源:程序員人生   發布時間:2013-11-21 21:48:33 閱讀次數:3421次

在php中數組排序一直是一個老生常談的問題,下面我們來集中講一下關于在php中一維數組與二維數組排序的實現程序,各位同學可參考.

功能:對數組進行重新排序.

說明:冒泡排序 (一維數組)(二維數組某個健排序)

兩兩比較待排序數據元素的大小,發現兩個數據元素的次序相反時即進行交換,直到沒有反序的數據元素為止

設想被排序的數組R[1..N] 垂直豎立,將每個數據元素看作有重量的氣泡,從下往上掃描數組,凡掃描違反原則的輕氣泡,就使其向上”漂浮”,如此反復進行,直到最后任何兩個氣都是輕者在上,重者在下為止,代碼如下:

  1. /** 
  2. * 冒泡排序 (一維數組)(二維數組某個健排序) 
  3. * 兩兩比較待排序數據元素的大小,發現兩個數據元素的次序相反時即進行交換,直到沒有反序的數據元素為止 
  4.  * 設想被排序的數組R[1..N] 垂直豎立,將每個數據元素看作有重量的氣泡,從下往上掃描數組,凡掃描違反原則的輕氣泡,就使其向上"漂浮".如此反復進行. 
  5.  * 直到最后任何兩個氣都是輕者在上,重者在下為止. 
  6.  */ 
  7. function bubble_sort($array,$key=null) { 
  8.         $count = count($array); 
  9.         if($count < 0) { 
  10.             return false; 
  11.         } 
  12.         for($i = 0; $i < $count$i++) { 
  13.             for($j = $count - 1; $j > $i$j--) { 
  14.                 if($key && isset($array[$key])){//二維數組健存在 
  15.                     if($array[$j][$key] < $array[$j - 1][$key]) { 
  16.                         $tmp = $array[$j]; 
  17.                         $array[$j] = $array[$j - 1]; 
  18.                         $array[$j - 1] = $tmp
  19.                     } 
  20.                 }else//一維數組 
  21.                     if($array[$j] < $array[$j - 1]) { 
  22.                         $tmp = $array[$j]; 
  23.                         $array[$j] = $array[$j - 1]; 
  24.                         $array[$j - 1] = $tmp
  25.                     } 
  26.                 } 
  27.             } 
  28.         } 
  29.         return $array
  30.     } 

array_multisort排序使用方法

array_multisort() 對二位數組按照指定鍵值排序的使用方法,本例中定義了一個名為 $data 的二維數組,然后對它進行排序,方法代碼如下:

  1. $data[] = array('volume' => 67, 'edition' => 2);  
  2. $data[] = array('volume' => 86, 'edition' => 1);  
  3. $data[] = array('volume' => 85, 'edition' => 6);  
  4. $data[] = array('volume' => 98, 'edition' => 2);  
  5. $data[] = array('volume' => 86, 'edition' => 6);  
  6. $data[] = array('volume' => 67, 'edition' => 7);  
  7.    
  8. // 取得列的列表  
  9. foreach ($data as $key => $row) {  
  10.     $volume[$key]  = $row['volume'];  
  11.     $edition[$key] = $row['edition'];  
  12. }  
  13.    
  14. // 將數據根據 volume 降序排列,根據 edition 升序排列  
  15. // 把 $data 作為最后一個參數,以通用鍵排序  
  16. array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);  
  17.    
  18. print_r($data); 
  19.  
  20. /* 
  21. 執行后打印結果如下: 
  22. Array  
  23.  
  24.     [0] => Array  
  25.         (  
  26.             [volume] => 98  
  27.             [edition] => 2  
  28.         )  
  29.     [1] => Array  
  30.         (  
  31.             [volume] => 86  
  32.             [edition] => 1  
  33.         )  
  34.     [2] => Array  
  35.         (  
  36.             [volume] => 86  
  37.             [edition] => 6  
  38.            
  39.     [3] => Array  
  40.         (  
  41.             [volume] => 85  
  42.             [edition] => 6  
  43.         )  
  44.     [4] => Array  
  45.         (  
  46.             [volume] => 67  
  47.             [edition] => 2  
  48.         )  
  49.     [5] => Array  
  50.         (  
  51.             [volume] => 67  
  52.             [edition] => 7  
  53.         )  
  54. ) 
  55. */ 

一維數組排序我們只要使用sort()就可以了,相對應的 asort($arr); 函數是按鍵值排序,且維持原有的鍵值關系。

同樣原理,rsort(); arsort(); krsort(); 函數除了排序是按降序排列外,其它與sort(); rsort(); ksort(); 相同。

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美性受xxxx黑人xyx性爽 | 国产精品视频一区二区三区 | h视频免费网站 | 欧美性高清video | 色综合天天综合网国产成人 | 五月婷婷在线视频观看 | 亚洲小说专区 | 精品无码久久久久久国产 | 欧美黑人粗暴另类多交 | 久久福利影院 | 欧美xxxxx精品 | 国产福利一区二区在线观看 | 中文字幕中韩乱码亚洲大片 | 天堂在线视频观看 | 欧美激情一区二区 | 国产区第一页 | 最新国产一区二区精品久久 | 国产高清中文字幕 | 91亚洲精品久久 | 欧美性天堂 | 花蝴蝶亚洲一区二区三区 | 免费视频中文字幕 | 黄色wwwcom | 色啪视频 | 日韩精品一区二区三区视频 | 亚洲欧美日韩中文字幕在线 | 国产精品视频第一页 | 国产精品一区二区三区免费视频 | 嫩草影院精品视频在线观看 | 77ee成人| 日韩欧美亚洲国产高清在线 | 国产精品嫩草影院人体模特 | 欧美 自拍偷拍 | 亚洲视频影院 | 午夜影院亚洲 | 亚洲精品国自产拍影院 | 亚洲天堂黄色 | 伊人青青操 | 中文字幕亚洲天堂 | 最色网址| 日本不卡一区二区三区视频 |