具体实例
代码如下 | 复制代码 |
/*二维数组按指定的键值排序*/ function array_sort($array,$keys,$type='asc'){ if(!isset($array) || !is_array($array) || 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 111cn.net
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 www.111cn.net 单元被作为数字来比较
SORT_STRING 单元被作为字符串来比较 SROT_LOCALE_STRING 根据当前的local 设置来把单元当做字符串比较
时间: 2024-10-09 18:31:01