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;
}