博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PHP常见数组排序方法小结
阅读量:7242 次
发布时间:2019-06-29

本文共 1853 字,大约阅读时间需要 6 分钟。

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

 

转载于:https://www.cnblogs.com/studyandstudy/p/10410441.html

你可能感兴趣的文章
shell中的点命令与source命令
查看>>
我的友情链接
查看>>
百度 ueditor 富文本编辑器的使用心得 jsp版本 1.4的JDK weblogic8
查看>>
软件安装
查看>>
增加点访问量
查看>>
MongoDB笔记十七——Mongodb导入
查看>>
sdfgsdf
查看>>
别人的tomcat配置
查看>>
linux基础命令练习题
查看>>
《Memcached应用实战》
查看>>
我的友情链接
查看>>
Linux 基础学习 文件查找命令 find 部分用法
查看>>
怎样成为一个高级的研发工程师
查看>>
Telnet部署与启动 windows&&linux
查看>>
落力在岁月青葱
查看>>
2015年春节往事小记
查看>>
oracle 删除表空间后服务器磁盘空间未释放
查看>>
windows程序员C/C++转向linux程序员时,如何编写、调试linux程序
查看>>
我的友情链接
查看>>
非等宽图片列表的布局
查看>>