好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

php 二维数组的分组排序实现代码 - php数组

php 二维数组的分组排序实现代码

分组排序,代码如下:

<?php   $new2 [ 'group' ][ 'key' ]= 'time' ;   $new [ 'aa' ][ 'b' ]=44;   $new [ 'aa' ][ 'c' ]=33;   $new [ 'aa' ][ 'd' ]=34;   $new [ 'bb' ][ 'b' ]=55;   $new [ 'bb' ][ 'c' ]=32;   $new [ 'cc' ][ '4' ]=77;   $new [ 'dd' ][ 'g' ]=55;   $new [ 'dd' ][ 'c' ]=54;    function  arr_group_sort( $new ){         foreach ( $new   as   $key => $val ){             asort( $new [ $key ]); //分别对每一组的数据进行排序;               $tmp = $new [ $key ]; //将排序后的数据赋值给一个临时数组;               $tmp []= $key ; //将原来数组的键值加入到临时数组的末尾,为后期的修改键值的步骤做准备;               $a = array_shift ( $new [ $key ]); //将每一组的第一项(最小项)数据取出来,以aa组为例子,$a此时的值就为33;               $aa [ $a ]= $tmp ; //新建一个数组,以$aa(比如33)为键值;              ksort( $aa ); //按照键值排序         }         foreach ( $aa   as   $key => $val ){ //按照键值排序的数组,已经失去了原来的键值,比如aa/bb/cc/dd之类的,好在我们之前已经将键值存入了临时数组的末尾;               $b = array_pop ( $aa [ $key ]); //将键值取出来;               $bb [ $b ]= $aa [ $key ]; //从新建立一个数组,使用之前的键值(aa/bb/cc)         }         return   $bb ; //返回    }    $c =arr_group_sort( $new );   print_r( $new ); //原数组;    print_r( $c ); //分组排序后的数组;    ?> 

其它的二维数组排序的方法,代码如下:

function  array_sort( $arr , $keys , $type = 'asc' ){     $keysvalue  =  $new_array  =  array ();    foreach  ( $arr   as   $k => $v ){     $keysvalue [ $k ] =  $v [ $keys ];   }    if ( $type  ==  'asc' ){    asort( $keysvalue );   } else {    arsort( $keysvalue );   }   reset( $keysvalue );    foreach  ( $keysvalue   as   $k => $v ){     $new_array [ $k ] =  $arr [ $k ];   }    return   $new_array ;   } 

它可以对二维数组按照指定的键值进行排序,也可以指定升序或降序排序法(默认为升序),用法示例如下:

$array  =  array (    array ( 'name' => '手机' , 'brand' => '诺基亚' , 'price' =>1050),    array ( 'name' => '笔记本电脑' , 'brand' => 'lenovo' , 'price' =>4300),    array ( 'name' => '剃须刀' , 'brand' => '飞利浦' , 'price' =>3100),    array ( 'name' => '跑步机' , 'brand' => '三和松石' , 'price' =>4900),    array ( 'name' => '手表' , 'brand' => '卡西欧' , 'price' =>960),    array ( 'name' => '液晶电视' , 'brand' => '索尼' , 'price' =>6299),    array ( 'name' => '激光打印机' , 'brand' => '惠普' , 'price' =>1200)  );    $ShoppingList  = array_sort( $array , 'price' );  print_r( $ShoppingList ); 

查看更多关于php 二维数组的分组排序实现代码 - php数组的详细内容...

  阅读:48次