1.简单数组排序 sort() 函数和rsort() 函数:

语法规则:

bool sort(array &array [,int sort_flags]
bool rsort(array &array [.int_sort_flags]

参数:

  第一个参数是排序数组对象

  第二个参数是可以选的 可选值:

    SORT_REGULAR:是默认值,将自动识别数组的元素类型进行排序
    SORT_NUMERIC:用于数组元素排序
    SORT_STRING:用于字符串排序
    SORT_LOCALE_STRING:根据当前的locale设置来把元素当作字符串比较

示例:

$a=array(4,7,9,1);
sort($a);
pirnt_r($a);
rsort($a);
print_r($a);

2.根据键名对数组排序

定义: ksort() 函数按照键名对数组进行有小到大的排序。 krsort()ksort()函数相反,排序后为数组值保持原来的键。

示例

$data= array(5=>"five",8=>"eight",1=>"one",7=>"seven");
ksrot($data);
print_r($data);
krsot($data);
print_r($data);

3.根据元素值排序

定义 : asort() 从小到大 /  arsort() 从大到小,用这个函数排序,原始键名将被忽略,使用依次数字重新索引数组下标

示例 :

$data=array("a"=>1,"b"=>2,"c"=>3);
asort($data);
print_r($data);
arsort($data);
print_r($data);

4.自然排序

定义 : 是个非常特殊的排序方式,这种方式使用认知而不是使用计算规则,这种特性称为——自然排序法,即数字从1到9,字母从a-z,短者优先。

示例 :

$data=array("file1.txt","file11.txt","file111.txt");
natsort($data);//普通自然排序
natcasesort($data);//忽略大小写

5.根据用户自定义排序规则

语法规则 :

bool usort(array &array ,callback cmp_function)
bool uasort(array &array,callback cmp_function)
bool uksort(array &array,callback cmp_function)

说明 : 自定义回调函数,需要两个参数,分别是数组两个连续元素,比较第一个参数小于,大于,等于第二个参数是分别返回 0,1,-1

示例 :

$data= array("ab","abc","a","ac","abcd");
usrot($data,"mysortByLen");
function mysortByLen($one,$two){
if(strlen($one)== strlen($two)){
return 0;
}else{
return (strlen($one)>strlen($two))?1:-1;
}

6.多维数组排序

定义 : array_multisort()函数对多个数组排序,或者根据某一维或多维对多维数组排序。

bool array_multisort(array array1 [,mixed arg,[,array ....]])

示例:

$data=array(
array("id"=>1,"name"=>4),
array("id"=>1,"name"=>2),
array("id"=>2,"name"=>3)
);
foreach($data as $key=>$value){
$ids[$key]=$value["id"];
$names[$key]=$value["name"]
}
array_multisort($data,$ids,$names);
print_r($data);

输出结果:

array(
array("id"=>1,"name"=>2),
array("id"=>1,"name"=>4),
array("id"=>2,"name"=>3)
);

最新文章

  1. 浅谈ScrollView嵌套ListView及ListView嵌套的高度计算
  2. Android 自定义ListView
  3. CSS3 仿微信聊天小气泡
  4. QuickFIX/N入门:(三)如何配置QuickFIX/N
  5. 了解Sql Server的执行计划
  6. Action返回类型
  7. 关于java调用linux shell 的问题
  8. 三.CSS层叠机制
  9. 【转,未试】android 9path教程与去黑边
  10. Kyoto Cabinet--nosql型单机数据库
  11. 手机wap网站建设的方法和技巧
  12. D3.js从入门到“放弃”指南
  13. C语言系列之强制类型转换(一)
  14. Core Java 谈谈 ThreadPoolExecutor
  15. C#设计模式(16)——中介者模式
  16. Python find函数用法和概念
  17. centos7下利用httpd2.4配置svn并使用Ldap用户认证
  18. springboot与springcloud的版本问题
  19. Spark记录-Spark性能优化(开发、资源、数据、shuffle)
  20. jsp的文件包含漏洞

热门文章

  1. UVA 11181 Possibility Given
  2. python 中字符串转 二进制 /ASCII码
  3. Springboot(九).多文件上传下载文件(并将url存入数据库表中)
  4. 使用单调队列维护决策三元组实现决策单调性优化DP的一些细节
  5. php的switch函数
  6. python学习之路(9)
  7. LeetCode 56. 合并区间(Merge Intervals)
  8. snmpEngineBoots & snmpEngineID数据存储到非易失性存储设备
  9. React 中 refs 的作用是什么?
  10. kotlin之布尔类型