免费注册 查看新帖 |

Chinaunix

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

二维数组排序? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-01 17:21 |只看该作者 |倒序浏览
有以下的数组,
$array = array (

    "num1"  => array (12,35,26),
    "num2"  => array (56,9,86),
    "num3"  => array (46,61,21))
如果按照第二列值升序排序,结果如下:
$array=array(
         "num2"        =>array(56,9,86),
         "num1"        =>array(12,35,26),
         "num3"        =>array(46,61,21)
         )
如果按照第一列的降序排序,结果如下:
$array=array(
         "num2"        =>array(56,9,86),
         "num3"        =>array(46,61,21),
         "num1"        =>array(12,35,26)
         )
指定任意列,可以按数值进行升降序排序,请问有什么方法可以实现。谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-09-01 18:11 |只看该作者
你是不会算法,还是想要编好的源码?

论坛徽章:
0
3 [报告]
发表于 2008-09-04 11:43 |只看该作者
能告诉一个实现方法就行了,不用具体的代码,谢谢!

论坛徽章:
0
4 [报告]
发表于 2008-09-04 14:57 |只看该作者
那位朋友给看一下,谢谢!急!!!

论坛徽章:
0
5 [报告]
发表于 2008-09-04 19:51 |只看该作者
哦?!

论坛徽章:
0
6 [报告]
发表于 2008-09-04 22:05 |只看该作者
<?php
      function array_sort_by_any_row($array_name,$row_id,$order_type){//以次为要排列的数组,要排列的列,要排列的顺序

         $array_temp=array();
         foreach($array_name as $key=>$value){
                     $array_temp[$key]=$value[$row_id];

                     //array_push($array_temp,$key=>$value[$row_id]);
         }
         if($order_type==="ASC"){//顺序

                    asort($array_temp);
         }
         else
                     arsort($array_temp);


         $result_array=array();
         foreach($array_temp as $key=>$value){
                   $result_array[$key]=$array_name[$key];
                   //array_push($result_array,$array_name[$key]);
         }
         return $result_array;
     }
?>   
没有测试过,原理上应该是行得通的。      



[ 本帖最后由 wildlily980 于 2008-9-4 22:24 编辑 ]

论坛徽章:
0
7 [报告]
发表于 2008-09-05 09:56 |只看该作者
,楼上的比我速度啊.你写的这个方法,很棒.比我的优化很多.佩服!

论坛徽章:
0
8 [报告]
发表于 2008-09-05 10:00 |只看该作者
,好好学习!谢谢楼上!

论坛徽章:
0
9 [报告]
发表于 2008-09-05 16:00 |只看该作者
谢谢六楼兄弟,好好学习一下。

论坛徽章:
0
10 [报告]
发表于 2008-09-06 20:26 |只看该作者

回复 #6 wildlily980 的帖子

老大,输什么参数都是一样的结果!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP