免费注册 查看新帖 |

Chinaunix

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

昨天排序列错了,再发次,请高手帮忙排序。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-01-26 08:22 |只看该作者 |倒序浏览
$fields[0][0]=array('d','3');
$fields[0][1]=array('d','3');
$fields[0][2]=array('d','3');
$fields[0][3]=array('d','3');

$fields[1][0]=array('d','2');
$fields[1][1]=array('d','2');
$fields[1][2]=array('d','2');
$fields[1][3]=array('d','2');

$fields[2][0]=array('d','6');
$fields[2][1]=array('d','6');
$fields[2][2]=array('d','6');
$fields[2][3]=array('d','6');

$fields[3][0]=array('b','5');
$fields[3][1]=array('b','5');
$fields[3][2]=array('b','5');
$fields[3][3]=array('b','5);

$fields[4][0]=array('b','4');
$fields[4][1]=array('b','4');
$fields[4][2]=array('b','4');
$fields[4][3]=array('b','4');

$fields[5][0]=array('b','1');
$fields[5][1]=array('b','1');
$fields[5][2]=array('b','1');
$fields[5][3]=array('b','1');

$fields[6][0]=array('c','8');
$fields[6][1]=array('c','8');
$fields[6][2]=array('c','8');
$fields[6][3]=array('c','8);

$fields[7][0]=array('c','9');
$fields[7][1]=array('c','9');
$fields[7][2]=array('c','9');
$fields[7][3]=array('c','9');

$fields[8][0]=array('c','7');
$fields[8][1]=array('c','7');
$fields[8][2]=array('c','7');
$fields[8][3]=array('c','7');

如何排序,排序方式为:先按array('c','7')这里的字母排序,然后字母排序的基础上,再按array里的数字大小排序。排序结果如下:
$fields[0][0]=array('b','1');
$fields[0][1]=array('b','1');
$fields[0][2]=array('b','1');
$fields[0][3]=array('b','1');

$fields[1][0]=array('b','4');
$fields[1][1]=array('b','4');
$fields[1][2]=array('b','4');
$fields[1][3]=array('b','4');

$fields[2][0]=array('b','5');
$fields[2][1]=array('b','5');
$fields[2][2]=array('b','5');
$fields[2][3]=array('b','5');

$fields[3][0]=array('c','7');
$fields[3][1]=array('c','7');
$fields[3][2]=array('c','7');
$fields[3][3]=array('c','7');

$fields[4][0]=array('c','8');
$fields[4][1]=array('c','8');
$fields[4][2]=array('c','8');
$fields[4][3]=array('c','8);

$fields[5][0]=array('c','9');
$fields[5][1]=array('c','9');
$fields[5][2]=array('c','9');
$fields[5][3]=array('c','9');

$fields[6][0]=array('d','2');
$fields[6][1]=array('d','2');
$fields[6][2]=array('d','2');
$fields[6][3]=array('d','2');

$fields[7][0]=array('d','3');
$fields[7][1]=array('d','3');
$fields[7][2]=array('d','3');
$fields[7][3]=array('d','3');

$fields[8][0]=array('d','6');
$fields[8][1]=array('d','6');
$fields[8][2]=array('d','6');
$fields[8][3]=array('d','6');

上次有高手,给我了一个排序方法,但是只是排其中一个的,谁能把2个排序的做出来下给我。
uasort($fields, create_function('$a,$b','return $a[key($a)][0]==$b[key($b)][0]?0:(($a[key($a)][0]>$b[key($b)][0])?1:-1);'));

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
2 [报告]
发表于 2008-01-28 22:57 |只看该作者

  1. <?php
  2. $fields[0][0]=array('d','3');
  3. $fields[0][1]=array('d','3');
  4. $fields[0][2]=array('d','3');
  5. $fields[0][3]=array('d','3');

  6. $fields[1][0]=array('d','2');
  7. $fields[1][1]=array('d','2');
  8. $fields[1][2]=array('d','2');
  9. $fields[1][3]=array('d','2');

  10. $fields[2][0]=array('d','6');
  11. $fields[2][1]=array('d','6');
  12. $fields[2][2]=array('d','6');
  13. $fields[2][3]=array('d','6');

  14. $fields[3][0]=array('b','5');
  15. $fields[3][1]=array('b','5');
  16. $fields[3][2]=array('b','5');
  17. $fields[3][3]=array('b','5');

  18. $fields[4][0]=array('b','4');
  19. $fields[4][1]=array('b','4');
  20. $fields[4][2]=array('b','4');
  21. $fields[4][3]=array('b','4');

  22. $fields[5][0]=array('b','1');
  23. $fields[5][1]=array('b','1');
  24. $fields[5][2]=array('b','1');
  25. $fields[5][3]=array('b','1');

  26. $fields[6][0]=array('c','8');
  27. $fields[6][1]=array('c','8');
  28. $fields[6][2]=array('c','8');
  29. $fields[6][3]=array('c','8');

  30. $fields[7][0]=array('c','9');
  31. $fields[7][1]=array('c','9');
  32. $fields[7][2]=array('c','9');
  33. $fields[7][3]=array('c','9');

  34. $fields[8][0]=array('c','7');
  35. $fields[8][1]=array('c','7');
  36. $fields[8][2]=array('c','7');
  37. $fields[8][3]=array('c','7');

  38. uasort($fields, create_function('$a,$b','return $a[key($a)][0]==$b[key($b)][0]?0:(($a[key($a)][0]>$b[key($b)][0])?1:-1);'));
  39. uasort($fields, create_function('$a,$b','return $a[key($a)][1]==$b[key($b)][1]?0:(($a[key($a)][1]>$b[key($b)][1])?1:-1);'));

  40. foreach($fields as $k=>$v)
  41. {
  42.         foreach($v as $kk=>$vv)
  43.         {
  44.                 printf("\$fields[%d][%d]=array('%s','%s');\n",$k,$kk,$vv[0],$vv[1]);
  45.         }
  46.         printf("\n");
  47. }
  48. ?>
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP