用到二维数组排序,到手册里面查了下,有这样一个很不错的函数,和数据库里面的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排
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
$deed_id [] = $t_v [ ' deed_id ' ] ;
$total [] = $t_v [ ' total ' ] ;
//print_r($t_v);
}
array_multisort ( $deed_id ,
print_r ( $XML_deed_temp ) ;