php 二维数组按指定的键值排序
以前我们有讲过各种php数组排序的方法,同时php也提供了大量的数据排序函数,sort(),asort(),arsort()等,下面我来给各位同学介绍二维数组按指定的键值排序的方法,具体实例代码如下:
/*二维数组按指定的键值排序*/ function array_sort( $array , $keys , $type = 'asc' ){ if (!isset( $array ) || ! is_array ( $array ) || empty empty ( $array )){ return '' ; } if (!isset( $keys ) || trim( $keys )== '' ){ return '' ; } if (!isset( $type ) || $type == '' || !in_array( strtolower ( $type ), array ( 'asc' , 'desc' ))){ return '' ; } $keysvalue = array (); foreach ( $array as $key => $val ){ $val [ $keys ] = str_replace ( '-' , '' , $val [ $keys ]); $val [ $keys ] = str_replace ( ' ' , '' , $val [ $keys ]); $val [ $keys ] = str_replace ( ':' , '' , $val [ $keys ]); $keysvalue [] = $val [ $keys ]; } asort( $keysvalue ); //key值排序 reset( $keysvalue ); //指针重新指向数组第一个 foreach ( $keysvalue as $key => $vals ) { $keysort [] = $key ; } $keysvalue = array (); $count = count ( $keysort ); if ( strtolower ( $type ) != 'asc' ){ for ( $i = $count -1; $i >=0; $i --) { $keysvalue [] = $array [ $keysort [ $i ]]; } } else { for ( $i =0; $i < $count ; $i ++){ $keysvalue [] = $array [ $keysort [ $i ]]; } } return $keysvalue ; }使用方法,代码如下:
$a = array ( 1=> array ( id=>1, price=> '79' , ), 2=> array ( id=>1, price=> '68' , ), );就使用:array_sort($a,'price');
php数组排序函数
sort (&$arr[,fruits]) 对数组进行从低到高排序,并赋予新的键名 返回bool
rsort (&$arr[,fruits]) 对数组进行逆向排序,并赋予新的键名
asort (&$arr[,fruits]) 对数组进行排序,并保持索引不变
arsort(&$arr[,fruits]) 对数组进行逆向排序,并保持索引不变
ksort (&$arr [,fruits]) 对数组按照键名进行排序
krsort(&$arr [,fruits]) 对组数按照键名进行逆向排序
natsort(&$arr) 对数组键值进行‘自然排序法’按照长度,字母排序等
natcasesort(&$arr) 对数组进行不区分大小写的‘自然排名’
usort (&$arr,cmp_function ) 用户自定义函数对一个数组进行排序,重新排列键名
uksort (&$arr,cmp_function ) 用户自定义函数对一个数组进行键名排序
uasort (&$arr,cmp_function) 用户自定义函数对数组进行排序 并保持索引不变
array_multisort($arr,mixed) 第二个参数是可以根据值改变排序行为
SORT_REGULAR 正常比较单元 SORT_NUMERIC 单元被作为数字来比较
SORT_STRING 单元被作为字符串来比较 SROT_LOCALE_STRING 根据当前的local 设置来把单元当做字符串比较
查看更多关于php 二维数组按指定的键值排序 - php数组的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did31365