php中的常用数组函数(八) 排序函数汇总(sort、rsort、usort、asort、uasort、arsort、ksort、uksort、krsort、natsort、natcasesort、array_multisort)
测试环境:php5.3.29
-
sort_flags可以用以下值改变排序的行为:排序类型标记:
SORT_REGULAR- 正常比较单元(不改变类型)SORT_NUMERIC- 单元被作为数字来比较SORT_STRING- 单元被作为字符串来比较SORT_LOCALE_STRING- 根据当前的区域(locale)设置来把单元当作字符串比较,可以用 setlocale() 来改变。SORT_NATURAL- 和 natsort() 类似对每个单元以“自然的顺序”对字符串进行排序。 PHP 5.4.0 中新增的。SORT_FLAG_CASE- 能够与SORT_STRING或SORT_NATURAL合并(OR 位运算),不区分大小写排序字符串。PHP 5.4.0 中新增的。
sort($arr[,$sort_flags=SORT_REGULAR]
以键值升序排序。(注意。会删掉键名然后建立数字索引。需要保留键名可以用asort函数)
(值一样的元素,实际在排序函数中也交换了位置,由于值一样所以看不出来但还是交换了的。)
rsort(同上)
以键值降序排序。(注意。同上也会删掉键名,需要保留键名可以用arsort函数)
usort($arr, $cmp_function)
自定函数以键值排序。(注意。同上键名也没了,需要保留键名可以用uasort函数)
cmp_function($a, $b)的两个参数是键值。返回正数,将参数1放后面;0不变;负数,将参数2放后面。
asort($arr[,$sort_flags=SORT_REGULAR))
和sort一样,除了保留键名关联。
arsort(同上)
和rsort一样,除了保留键名关联。
uasort($arr, $cmp_function)
和usort一样。除了保留键名的关联。
ksort($arr[,$sort_flags=SORT_REGULAR))
以键名升序排序。
krsort(同上)
以键名降序排序。
uksort($arr, $cmp_function)
$cmp_function($a, $b)的两个参数是键名。返回处理和usort一样。
natsort($arr)
"natural(自然)排序" 按数值升序。
1.如升序时 2在13前。
2.大小写敏感,如元素 'img1' 'img2' 'Img3' 会排序成 Img3 img1 img2
natcasesort($arr)
natsort($arr)忽略大小写的版本。
array_multisort($arr1[,$arr2...$arrN,$sort_flags=SORT_REGULAR)
关联(字符串)键名不变,数字索引会重新产生。
将$arr2~n的数组的元素,按照$arr1中的移动顺序,作出同样的移动。
如$arr1 = array(2, 3, 1);
变成了 array(1, 2, 3);
$arr2~n也会把 下标0放到下标1上;下标1元素 放到下标2上;下标2的放到下标0上;
php中的常用数组函数(八) 排序函数汇总(sort、rsort、usort、asort、uasort、arsort、ksort、uksort、krsort、natsort、natcasesort、array_multisort)的更多相关文章
- PHP常用数字函数以及排序函数
一:数字函数 .ceil() 进一取整 示例:ceil(0.9) 结果为1 .abs() 绝对值 示例:abs(-1) 结果为1 .rand() 随机数 示例:rand(1. 100) 1到100 以 ...
- 3204: 数组做函数参数--排序函数2--C语言
3204: 数组做函数参数--排序函数2--C语言 时间限制: 1 Sec 内存限制: 128 MB提交: 211 解决: 143[提交][状态][讨论版][命题人:smallgyy] 题目描述 ...
- 3203 数组做函数参数----排序函数--C语言版
3203: 数组做函数参数----排序函数--C语言版 时间限制: 1 Sec 内存限制: 128 MB提交: 253 解决: 151[提交][状态][讨论版][命题人:smallgyy] 题目描 ...
- lambda匿名函数sorted排序函数filter过滤函数map映射函数
lambda函数:表示匿名函数,不需要def来声明,一句话就能搞定. 语法:函数名=lamda 参数:返回值 求10的10次方 f=lambda n:n**n print(f(10)) 注意: 函数名 ...
- PHP中的常用数组操作方法
一.数组操作的基本函数 数组的键名和值array_values($arr); 获得数组的值array_keys($arr); 获得数组的键名array_flip($arr); 数组中的值与键名互 ...
- Visual C++中最常用的类与API函数
这篇文章能让初学者快速了解visual C++ MFC中常见的核心的类与函数,虽然全部看下来有点枯燥,但对初学者快速了解MFC的框架结构很有好处. 常用类 CArchive类:用于二进制保存档案 CB ...
- 算法分析中最常用的几种排序算法(插入排序、希尔排序、冒泡排序、选择排序、快速排序,归并排序)C 语言版
每次开始动手写算法,都是先把插入排序,冒泡排序写一遍,十次有九次是重复的,所以这次下定决心,将所有常规的排序算法写了一遍,以便日后熟悉. 以下代码总用一个main函数和一个自定义的CommonFunc ...
- scanf函数和cin的区别、类的数组、C++排序函数
给定n个字符串,将这n个字符串按照字典序进行排列,此处用排列函数是C++的库函数sort,产生如下两个疑问,望大佬解答 #include <iostream> #include <a ...
- 6种字符串数组的java排序 (String array sort)
注意,本文不是字符串排序,是字符串数组的排序. 方法分别是: 1.低位优先键索引排序 2.高位优先建索引排序 3.Java自带排序(经过调优的归并排序) 4.冒泡排序 5.快速排序 6.三向快速排序 ...
随机推荐
- Atitit dsl实现(1)------异常的库模式实现 异常的ast结构
Atitit dsl实现(1)------异常的库模式实现 异常的ast结构 1.1. Keyword 1 1.2. 异常的ast模型 1 1.3. Astview的jar org.eclipse. ...
- JS中实现数组和对象的深拷贝和浅拷贝
数组的拷贝 > 数组的深拷贝,两层 var arr = [[1,2,3],[4,5,6],[7,8,9]]; var arr2 = []; 循环第一层数组 for(var i=0,len=arr ...
- 强制SQL Server执行计划使用并行提升在复杂查询语句下的性能
最近在给一个客户做调优的时候发现一个很有意思的现象,对于一个复杂查询(涉及12个表)建立必要的索引后,语句使用的IO急剧下降,但执行时间不降反升,由原来的8秒升到20秒. 通过观察执行 ...
- 网站CSS写在html里面的好处
这是应付超大流量的一种优化方案.为提高速度,他们的外部连接文件一般都存储在单独的服务器上,例如img.****.com,如果这个服务器挂掉 ,整个首页就挂掉了.放在页面内,比较安全.用户访问页面时,不 ...
- CSS裁剪clip
× 目录 [1]定义 [2]RECT [3]应用 前面的话 CSS裁剪clip这个属性平时用的不多,但其实它并不是CSS3的新属性,很早就开始出现了.本文将介绍关于clip属性的相关知识 定义 一个绝 ...
- Cwinux源码解析(四)
我在我的 薛途的博客 上发表了新的文章,欢迎各位批评指正. Cwinux源码解析(四)
- javaweb -- 获取请求IP(附实现源码)
实现步骤如下: (1)新建一个java web工程 (2)新建servers包,新建类GetRequestIp,用来处理获取请求IP,GetRequestIp类完整代码如下: package serv ...
- 牛顿法与拟牛顿法学习笔记(五)L-BFGS 算法
机器学习算法中经常碰到非线性优化问题,如 Sparse Filtering 算法,其主要工作在于求解一个非线性极小化问题.在具体实现中,大多调用的是成熟的软件包做支撑,其中最常用的一个算法是 L-BF ...
- inuit.css – 基于 Sass 的强大,可扩展的 CSS 框架
inuit.css 是一个强大的,可扩展的 CSS 框架,另外还是基于 Sass,面向对象的框架.inuit.css 是建立在 BEM 风格的命名约定,非常适合于想要专注于创意而不是代码的设计师以及喜 ...
- Android聚合广告AFP的对接系统设计
工作需要,要对接阿里妈妈的广告聚合平台,简称AFP.对于一般的应用而言,想要流量变现,广告是显而易见的手段,尤其是在中国,打开一个千万级别的用户,肯定有某个地方是有对接广告的,只不过明不明显而已. 阿 ...