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数组的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did31234