PHP的排序函数的总结

Sort     破坏索引 升序    值排序

Rsort    破坏索引 降序    值排序

 

Asort    保持索引 升序     值排序

Arsort   保持索引 降序     值排序

 

Ksort    保持索引 升序      键值排序(key)

Krsort   保持索引 降序       键值排序(key)

 

Usort

本函数将用用户自定义的比较函数对一个数组中的值(value)进行排序。如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数。

比较函数必须在第一个参数被认为小于,等于或大于第二个参数时分别返回一个小于,等于或大于零的整数。

Uksort

uksort — 使用用户自定义的比较函数对数组中的键名(key)进行排序

cmp_function 函数应接受两个参数,该参数将被 array 中的一对键名填充。比较函数在第一个参数小于,等于,或大于第二个参数时必须分别返回一个小于零,等于零,或大于零的整数。

Natsort

本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法并保持原有键/值的关联,这被称为“自然排序”。本算法和通常的计算机字符串排序算法

 

bool natcasesort ( array &$array )不区分大小写

本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法并保持原有键/值的关联,这被称为“自然排序”。

成功时返回 TRUE, 或者在失败时返回 FALSE.

比如给二维数组的排序,使用到内置函数asort和arsort。

思想是保持$keyvalue 和$arr的键值相同,然后将$arr要排序的那个列赋值给$keyvalue,使用内置函数给$keyvalue排序,

最后根据不变的键值返回$arr的其他列。

 

function array_sort($arr,$keys,$type='asc')
{
 echo'开始排序...'.'</br>';
 $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];
 }
 echo'排序结束...'.'</br>';
 return $new_array;
}

 

 

 

posted @ 2014-04-09 09:41  z497688734  阅读(1489)  评论(0编辑  收藏  举报