php中asort 排序语句,php中的几个经典排序函数(sort,asort,ksort等)
1
2
3
4
5
6
7
8sort() 函数用于对数组单元从低到高进行排序。
rsort() 函数用于对数组单元从高到低进行排序。
asort() 函数用于对数组单元从低到高进行排序并保持索引关系。
arsort() 函数用于对数组单元从高到低进行排序并保持索引关系。
ksort() 函数用于对数组单元按照键名从低到高进行排序。
krsort() 函数用于对数组单元按照键名从高到低进行排序。
natsort():对数组使用 自然算法 进行排序。
array_multisort():对多个数组或多维数组进行排序。
sort()
PHP sort() 函数用于对数组单元从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
注意:本函数会为排序的数组中的单元赋予新的键名,这将删除原有的键名而不仅是重新排序。
语法:
1bool sort( array &array [, int sort_flags] )
例子:
1
2
3$arr = array("b", "a", "c");
sort($arr);
print_r($arr);
运行该例子输出:
1Array ( [0] => a [1] => b [2] => c )
在本例中, $arr 数组单元被按照字母顺序排序,而数组单元经过排序后,键值重新分配。
rsort()
PHP rsort() 函数行为与 sort() 相反,对数组单元进行由高到低排序,请参考 sort() 函数使用。
asort()
PHP asort() 函数用于对数组单元从低到高进行排序并保持索引关系,如果成功则返回 TRUE,失败则返回 FALSE。
语法:
1bool asort( array &array [, int sort_flags] )
可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
例子:
1
2
3$arr = array("b", "a", "c");
asort($arr);
print_r($arr);
运行该例子输出:
1Array ( [1] => a [0] => b [2] => c )
arsort()
PHP arsort() 函数行为与 asort() 相反,对数组单元进行由高到低排序并保持索引关系,请参考 asort() 函数使用。
ksort()
PHP ksort() 函数用于对数组单元按照键名从低到高进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
本函数会保留原来的键名,因此常用于关联数组。
语法:
1bool ksort( array &array [, int sort_flags] )
可选参数 sort_flags 用以改变排序的行为,具体参见 sort()。
例子:
1
2
3$arr = array("b"=>18, "a"=>20, "c"=>25);
ksort($arr);
print_r($arr);
运行该例子输出:
1
2
3Array ( [a] => 20 [b] => 18
=> 25 )
krsort()
PHP krsort() 函数行为与 ksort() 相反,对数组单元按照键名进行由高到低排序,请参考 ksort() 函数使用。
natsort()
PHP natsort() 函数用于对数组使用 自然算法 进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
本函数实现了一个和人们通常对字母数字字符串进行排序的方法一样的排序算法并保持原有键名和值的关联。
语法:
1bool natsort ( array &array )
natsort() 和 sort() 排序比较:
1
2
3
4
5
6
7$arr1 = $arr2 = array("a1", "a11", "a2");
sort($arr1);
print_r($arr1);
echo '
';
natsort($arr2);
print_r($arr2);
运行该例子输出:
1
2Array ( [0] => a1 [1] => a11 [2] => a2 )
Array ( [0] => a1 [2] => a2 [1] => a11 )
natcasesort()
natcasesort() 函数行为与 natsort() 函数完全一致,区别之处在于 natcasesort() 不对数组单元区分大小写。
array_multisort()
函数用于对多个数组或多维数组进行排序。
PHP array_multisort() 函数用于一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
注意:关联(string)键名保持不变,但数字键名会被重新索引。
语法:
1bool array_multisort( array1 [, sort_order][, sort_flags][, array2] ... )
array1 为必须参数,需要排序的数组。
每个数组之后不能指定两个同类的排序标志,且每个数组后指定的排序标志仅对该数组有效,如果缺少对应标志将采用默认值。
输入数组被当成一个表的列并以行来排序,这类似于 SQL 的 ORDER BY 子句功能。第一个数组是要排序的主要数组,单元的值相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
例子1:
1
2
3
4
5$arr1 = array(1, 3, 2, 4);
$arr2 = array("a", "b", "c", "d");
array_multisort($arr1, $arr2);
print_r($arr1);
print_r($arr2);
运行该例子输出:
1
2Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
Array ( [0] => a [1] => c [2] => b [3] => d )
可见第一个主要数组经过排序后,后面的数组会受到第一个数组的影响而保持对应关系。就上面的例子,哪怕给 arr2 加上 SORT_DESC (降序排列)参数,也不会影响到 arr2 的排序结果。这种影响在多维数组里也存在。
例子2,主数组单元值有同样的情况:
1
2
3
4
5$arr1 = array(1, 2, 2, 4);
$arr2 = array("a", "b", "c", "d");
array_multisort($arr1, SORT_DESC, $arr2, SORT_ASC);
print_r($arr1);
print_r($arr2);
运行该例子输出:
1
2Array ( [0] => 4 [1] => 2 [2] => 2 [3] => 1 )
Array ( [0] => d [1] => b [2] => c [3] => a )
例子3,多维数组排序:
1
2
3$arr = array (array (1, 2, 3, 4), array ("a", "b", "b", "d"));
array_multisort($arr[0], SORT_DESC, $arr[1], SORT_ASC);
print_r($arr);
运行该例子输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18Array
(
[0] => Array
(
[0] => 4
[1] => 2
[2] => 2
[3] => 1
)
[1] => Array
(
[0] => d
[1] => b
[2] => c
[3] => a
)
)
例子4,数字与字符混合:
1
2
3$arr = array (array ("11", 2, 2, "a"), array (1, 2, 3, 4));
array_multisort($arr[0], SORT_ASC, SORT_STRING, $arr[1], SORT_NUMERIC, SORT_DESC);
var_dump($arr);
运行该例子输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16array(2) {
[0]=>
array(4) {
[0] => string(2) "11"
[1] => int(2)
[2] => int(2)
[3] => string(1) "a"
}
[1]=>
array(4) {
[0] => int(1)
[1] => int(3)
[2] => int(2)
[3] => int(4)
}
}
如果key都为数字的话,排序后都重新索引了,为了不让他索引就得把key改成字符串。例如把key都加上aa。排序完后在str_replace(‘aa’,’’,$array);
php中asort 排序语句,php中的几个经典排序函数(sort,asort,ksort等)相关推荐
- python中if else语句_python 中if else 语句的作用及示例代码
引入:if-else的作用,满足一个条件做什么,否则做什么. if-else语句语法结构 if 判断条件: 要执行的代码 else: 要执行的代码 判断条件:一般为关系表达式或bool类型的值 执行过 ...
- java中的异常处理语句_Java中实现异常处理的基础知识
Java中实现异常处理的基础知识 异常 (Exception):发生于程序执行期间,表明出现了一个非法的运行状况.许多JDK中的方法在检测到非法情况时,都会抛出一个异常对象. 例如:数组越界和被0除. ...
- 在matlab中的循环语句,matlab中循环语句
Matlab软件与基础数学实验 MATLAB编程介绍与循环结构 ★ MATLAB中各种命令可以完成许多单一的任务,对于某些较为复杂的问题,仅靠现有的命令或函数来解决,往 往是难以...... matl ...
- c语言排序算法实际案例,[C语言] 部分经典排序算法详解(有图解)
目录 1.内容概括 2.主要算法 3.技术的具体应用 4.算法实际应用 5.总结 0.前言 在上一篇文章<[C语言] 数组的实际应用三则>中我们提到了数组的一些基础知识,并通过三个实际例子 ...
- 9个元素换6次达到排序序列_全面讲解十大经典排序算法(Python实现)
作者 | hustcc 链接 | https://github.com/hustcc/JS-Sorting-Algorith 排序算法是<数据结构与算法>中最基本的算法之一.排序算法可以分 ...
- PHP 数组排序函数sort,rsort,ksort,krsort,asort,arsort区别
一.概念: 1.自然排序法:即按自然数的大小排序,例如"10>2"; 2.计算机标准排序法:是以逐个字符比较,排序,例如"2>10" ...
- sqlserver中,sql语句,按照汉字拼音首字母排序
sqlserver 中: select * from table order by userName collate Chinese_PRC_CS_AS_KS_WS 注释: collate:指的是定 ...
- mysql 关闭in自动排序,mysql排序语句_mysql中的in排序 mysql按in中顺序来排序
摘要 腾兴网为您分享:mysql中的in排序 mysql按in中顺序来排序,易订货,虚拟按键,享家,顺丰小哥等软件知识,以及方正证券小方,音基100,dwg转dwf,酷狗游戏盒,聊天宝客服聊天,kin ...
- python中的pass语句_Python中pass的作用与使用代码示例
本篇文章小编给大家分享一下Python中pass的作用与使用代码示例,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. Python中pass的作用 空语 ...
最新文章
- 在分页状态下删除纪录的问题
- hadoop源码datanode序列图
- python条件语句-Python3 条件控制
- intellij 快捷键整理
- scala调用java代码_scala调用java代码
- python 打包发布网站_Python代码的打包与发布
- Java对象的序列化和反序列化(转)
- PyCharm----中文显示乱码的解决方法总结
- vue.config.js跨域配置
- 证券交易系统术语介绍
- m3u8加密文件原理及下载脚本
- TabWidget当前标签底线颜色
- ruby 读取文本_使用Ruby进行文本处理
- HTML,JS与CSS
- 什么软件可以合并PDF文件?安利这三个软件给你
- 用Python输出各点两两连接的正17边形
- 用Helm3构建多层微服务
- C语言结构体error: invalid use of incomplet type ‘ struct people’
- TensorFlow学习笔记——使用TFRecord进行数据保存和加载
- 唯品会如何实现连续30个季度盈利?