一维数组的排序我们知道使用ksort() asort() 二维数组的排序怎么实现呢? 使用array_multisort和usort可以实现 例如像下面的数组: 代码如下: $users = array ( array ( 'name' => 'tom' , 'age' => 20), array ( 'name' => 'anny' , 'age' => 18), array ( 'name' => 'jack' , 'age' => 22) ); 希望能按照age从小到大进行排序。1、使用array_multisort() $ages = array (); foreach ( $users as $key => $val ) { $ages [] = $val [ 'age' ]; } print_r( $ages ); //输出结果:Array([0] => 20,[1] => 18,[2] => 22); array_multisort ( $ages , SORT_ASC, $users ); print_r( $ages ); //输出结果:Array([0] => 18,[1] => 20,[2] => 22); print_r( $users ); 2、使用usort() usort( $users , "cmp" ); function cmp( $a , $b ) { $c = $a [ 'age' ]; $d = $b [ 'age' ]; if ( $d == $c ) { return 0; } return ( $c < $d ) ? -1 : 1; } print_r( $users ); |
|