好得很程序员自学网

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

PHP多维数组排序实现程序代码 - php数组

PHP多维数组排序实现程序代码

在php中对数组排序包括一维数组排序与多维数组排序,下面我来详细介绍利用php数组排序函数与自定函数来实现数据排序的具体方法.

单数组排序,sort函数升序排序:

bool sort ( array &$array [, int $sort_flags= SORT_REGULAR ] )

PHP实例代码如下:

<?php  $fruits  =  array ( "lemon" ,  "orange" ,  "banana" ,  "apple" );  sort( $fruits );  var_dump( $fruits );  ?> 

-rsort降序排列--,代码如下:

<?php  $fruits  =  array ( "lemon" ,  "orange" ,  "banana" ,  "apple" );  rsort( $fruits );var_dump( $fruits );  ?> 

比如有个多维数组,代码如下:

$arr  =  array (      'd'  =>  array ( 'id'  => 5,  'name'  => 1,  'age'  => 7),      'b'  =>  array ( 'id'  => 2, 'name'  => 3, 'age'  => 4),      'a'  =>  array ( 'id'  => 8, 'name'  => 10, 'age'  => 5),      'c'  =>  array ( 'id'  => 1, 'name'  => 2, 'age'  => 2)  ; 

需要对二维数组中的 age 项排序,需要用到PHP的内置函数 array_multisort(),array_multisort() 需要一个包含列的数组,因此用以下代码来取得列,然后排序,代码如下:

// 取得列的列表   foreach  ( $data   as   $key  =>  $row ) {       $volume [ $key ]  =  $row [ 'volume' ];       $edition [ $key ] =  $row [ 'edition' ];  }  // 将数据根据 volume 降序排列,根据 edition 升序排列   // 把 $data 作为最后一个参数,以通用键排序   array_multisort ( $volume , SORT_DESC,  $edition , SORT_ASC,  $data );  数据集合现在排好序了,结果如下:  volume | edition  -------+--------      98 |       2      86 |       1      86 |       6      85 |       6      67 |       2      67 |       7 

自定义函数,代码如下:

function  multi_array_sort( $multi_array , $sort_key , $sort =SORT_ASC)  {       if ( is_array ( $multi_array ))      {           foreach  ( $multi_array   as   $row_array )          {               if ( is_array ( $row_array ))              {                   $key_array [] =  $row_array [ $sort_key ];              }               else               {                   return  false;              }          }      }       else       {           return  false;      }       array_multisort ( $key_array , $sort , $multi_array );       return   $multi_array ;  } //开源软件:phpfensi测试数据   //处理   print_r(multi_array_sort( $arr , 'age' ));   //输出    Array  (      [c] => Array          (              [id] => 1              [name] => 2              [age] => 2          )        [b] => Array          (              [id] => 2              [name] => 3              [age] => 4          )        [a] => Array          (              [id] => 8              [name] => 10              [age] => 5          )        [d] => Array          (              [id] => 5              [name] => 1              [age] => 7          )    ) 

实际上真正在排序的时候还有很多方法可以使用,比如php的array数组自带的 arsort(),asort(),ksort(),krsort(),natsort(),natcasesort(),rsort(),usort(),array_multisort() 和 uksort().

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

  阅读:42次