php数组排序的方法有哪些,PHP常见数组排序方法有哪些

PHP常见数组排序方法有哪些

发布时间:2020-12-16 10:43:23

来源:亿速云

阅读:98

作者:小新

这篇文章主要介绍PHP常见数组排序方法有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

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)

);

以上是“PHP常见数组排序方法有哪些”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值