程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 使用內置函數解決PHP多維數組排序問題

使用內置函數解決PHP多維數組排序問題

編輯:關於PHP編程

學習PHP時,你可能會遇到PHP多維數組排序問題,這裡將介紹PHP多維數組排序問題的解決方法,在這裡拿出來和大家分享一下,希望對大家有幫助。

根據數組的鍵進行比較大小,排序,就不用說了,php有很多,很方便的內置函數,krsort(),ksort()等如果是根據數組的值進行比較大小就麻煩一些。如果值沒有重復的情況,可以先用array_flip()交換鍵、值;然後krsort(),然後在array_flip()交換回來,就可以比較大小。有值重復的情況,就要用到一些排序算法了,不過php有很方便的回調函數uasort()會保持原來的索引、usort()會重建索引。PHP多維數組排序代碼:

  1. functioncmp($a,$b){  
  2. if($a[”nums”]==$b[”nums”]){  
  3. return0;  
  4. }  
  5. return($a[”nums”]<$b[”nums”])?-1:1;  
  6. }  
  7. $arr=Array(  
  8. 0=>Array(  
  9. “username”=>owen,  
  10. “nums”=>2,  
  11. ),  
  12. 1=>Array(  
  13. “username”=>d5s,  
  14. “nums”=>5,  
  15. ),  
  16. 2=>Array(  
  17. “username”=>pt,  
  18. “nums”=>3,  
  19. ),  
  20. );  
  21. uasort($arr,“cmp”);  
  22. echo‘<prestyleprestyle=”text-align:left”>’;  
  23. print_r($arr);  
  24. echo‘pre>’;  
  25. ?> 
  26.  
  27. Array  
  28. (  
  29. [0]=>Array  
  30. (  
  31. [username]=>owen  
  32. [nums]=>2  
  33. )  
  34.  
  35. [2]=>Array  
  36. (  
  37. [username]=>pt  
  38. [nums]=>3  
  39. )  
  40.  
  41. [1]=>Array  
  42. (  
  43. [username]=>d5s  
  44. [nums]=>5  
  45. )  
  46.  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved