免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1338 | 回复: 0
打印 上一主题 下一主题

PHP中多维数组的两个排序方法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-09-17 17:08 |只看该作者 |倒序浏览
两个方法对应的数组存储方式是不一样的
详见代码

  1. <?
  2. //第一种排序方法
  3. //列方式存放多维数组,排序方式可以按列选,这里我没写参数,详见array_multisort的用法
  4. /*
  5. $aclass["acid"][0]  =  1;  
  6. $aclass["acorder"][0]  =  3;  
  7. $aclass["acname"][0]  =  "入门指南";  
  8. $aclass["acinfo"][0]  =  "PHP基础知识";  

  9. $aclass["acid"][1]  =  2;  
  10. $aclass["acorder"][1]  =  1;  
  11. $aclass["acname"][1]  =  "应用技巧";  
  12. $aclass["acinfo"][1]  =  "PHP编程技巧总结";  

  13. $aclass["acid"][2]  =  3;  
  14. $aclass["acorder"][2]  =  2;  
  15. $aclass["acname"][2]  =  "高级应用";  
  16. $aclass["acinfo"][2]  =  "PHP程序的高级应用";  

  17. array_multisort($aclass['acorder'],$aclass['acid'],$aclass['acname'],$aclass['acinfo']);
  18. print_r($aclass);
  19. */

  20. //第二种排序方法
  21. //行方式存放的多维数组
  22. $aclass[0]["acid"]  =  1;  
  23. $aclass[0]["acorder"]  =  3;  
  24. $aclass[0]["acname"]  =  "入门指南";  
  25. $aclass[0]["acinfo"]  =  "PHP基础知识";  

  26. $aclass[1]["acid"]  =  2;  
  27. $aclass[1]["acorder"]  =  1;  
  28. $aclass[1]["acname"]  =  "应用技巧";  
  29. $aclass[1]["acinfo"]  =  "PHP编程技巧总结";  

  30. $aclass[2]["acid"]  =  3;  
  31. $aclass[2]["acorder"]  =  2;  
  32. $aclass[2]["acname"]  =  "高级应用";  
  33. $aclass[2]["acinfo"]  =  "PHP程序的高级应用";  

  34. //升序  
  35. //可以另写函数,也可用create_function构造函数
  36. /*function cmp_function($a,$b){  
  37. $k  =  "acorder";  
  38. if($a[$k]  ==  $b[$k])  return  0;  
  39. return  $a[$k]>$b[$k]?-1:1;   
  40. }*/
  41. $cmp_func = create_function('$a,$b','
  42. $k  =  "acorder";  
  43. if($a[$k]  ==  $b[$k])  return  0;  
  44. return  $a[$k]>$b[$k]?-1:1;
  45. ');
  46. usort($aclass,$cmp_func);  
  47. print_r($aclass);  

  48. //  降序
  49. /*  
  50. $desc_func  =  create_function('$a,$b','  
  51. $k  =  "acorder";  
  52. if($a[$k]  ==  $b[$k])  return  0;  
  53. return  $a[$k]>$b[$k]?-1:1;  
  54. ');  
  55. usort($aclass,$desc_func);  

  56. print_r($aclass);  
  57. */

  58. ?>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP