PHP 二维数组排序

 

用到二维数组排序,到手册里面查了下,有这样一个很不错的函数,和数据库里面的order by功能是一样的,把二位数组当成一个数据库的表。数组的key就相当于标的列,数组的value相当于标的行:
$XML_deed_temp=array(
array(’deed_id’=>1,’total’=>’b101′),
array(’deed_id’=>2,’total’=>’3′),
array(’deed_id’=>2,’total’=>’4′),
array(’deed_id’=>5,’total’=>’a5′),
array(’deed_id’=>8,’total’=>’a8′),
array(’deed_id’=>12,’total’=>’a12′),
array(’deed_id’=>11,’total’=>’a11′),
array(’deed_id’=>6,’total’=>’a6′)
);

上面的数组可以看成如下一个数据库表:
deed_id total
—————————-
1 b101
2 3
2 4
5 a5
8 a8
12 a12
11 a11
6 a6
——————————-
排序的时候先要取出其中的一列,然后就可以这样:
array_multisort($sortdeed,, SORT_ASC, $XML_deed_temp);
$XML_deed_temp就是要排序的数组,$sortdeed,就是要排序的列的数组(这个数组要先foreach $XML_deed_temp然后将deed_id那一列取出放到$sortdeed数组里面),如果要实现order by col1,col2这样的,可以把多个列取出进行排序,排序先按col1排,再按col2排

$XML_deed_temp=array(
array('deed_id'=>1,'total'=>'b101'),
array('deed_id'=>2,'total'=>'3'),
array('deed_id'=>2,'total'=>'4'),
array('deed_id'=>5,'total'=>'a5'),
array('deed_id'=>8,'total'=>'a8'),
array('deed_id'=>12,'total'=>'a12'),
array('deed_id'=>11,'total'=>'a11'),
array('deed_id'=>6,'total'=>'a6')
);
foreach($XML_deed_temp as $t_k=>$t_v){
$deed_id[]=$t_v['deed_id'];
$total[]=$t_v['total'];
//print_r($t_v);
}
array_multisort($deed_idSORT_ASC$totalSORT_ASC$XML_deed_temp);
print_r($XML_deed_temp);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值