PHP array_multisort对多维数组或多个数组排序
来源:互联网 发布:工行淘宝联名储蓄卡 编辑:程序博客网 时间:2024/04/30 04:49
PHP对一维数组排序,可能大家都很清楚,主要有以下几个:
sort() 对数组排序
rsort() 对数组逆向排序
asort() 保持索引关系
arsort() 逆向排序,并保持索引关系
ksort() 按键名排序
krsort() 按键名逆向排序
usort() 使用用户自定义的函数对数组进行排序
uksort() 使用用户自定义的函数对数组键名进行排序
natsort() 用自然排序算法对数组排序
natcasesort() 用自然排序算法对数组排序,不区分大小写
如果是多维数组或者对多个数组排序的话,PHP也提供了一个函数:array_multisort()
bool array_multisort ( array $ar1 [, mixed $arg [, mixed $... [, array $... ]]] ),成功返回true,失败返回false
使用说明:
关联(string)键名保持不变,但数字键名会被重新索引。
输入数组被当成一个表的列并以行来排序——这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。——这句话是理解此函数用法的关键。
第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。
排序顺序标志:
■SORT_ASC - 按照上升顺序排序
■SORT_DESC - 按照下降顺序排序
排序类型标志:
■SORT_REGULAR - 将项目按照通常方法比较
■SORT_NUMERIC - 将项目按照数值比较
■SORT_STRING - 将项目按照字符串比较
每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效 - 在此之前为默认值 SORT_ASC 和 SORT_REGULAR。
案例一:对多个数组进行排序
看以看到结果是:
很明显,array_multisort会先按第一个数组(想像成列)排序,如果第一个数组(列)的值相同,则按第二个数组(列)排序,一次类推。(个人见解:第一个数组排序之后,根据第一个数组的键(原先的键)顺序排序之后的数组(之后的数组没定义排序的情况下))
案例二:对多维数组排序(二维数组为例)
结果很显然:
你可以对array_multisort()稍稍封装下更好用,如我:
- function sort_array($array, $keyid, $order='asc', $type='number') {
- if(is_array($array)) {
- foreach($array as $val) {
- $order_arr[] = $val[$keyid];
- }
-
- $order = ($order == 'asc') ? SORT_ASC: SORT_DESC;
- $type = ($type == 'number') ? SORT_NUMERIC: SORT_STRING;
-
- array_multisort($order_arr, $order, $type, $array);
- }
- }
转载地址 http://www.phpddt.com/php/array_multisort.html
- PHP array_multisort对多维数组或多个数组排序
- php-Arrays 函数-array_multisort-对多个数组或多维数组进行排序
- PHP array_multisort—对多个数组或多维数组进行排序
- PHP array_multisort—对多个数组或多维数组进行排序
- PHP array_multisort—对多个数组或多维数组进行排序
- PHP - Manual手册 - V. Array 数组函数 - array_multisort对多个数组或多维数组进行排序
- array_multisort — 对多个数组或多维数组进行排序
- array_multisort()函数对多个数组或多维数组进行排序
- php array_multisort 多维数组排序
- php array_multisort 多维数组排序
- PHP多维数组排序 array_multisort()
- 多维数组排序 array_multisort()
- array_multisort实现PHP多维数组排序
- PHP多维数组排序(array_multisort)
- PHP array_multisort()函数多维数组排序
- php--多维数组排序函数array_multisort
- PHP多维数组排序之array_multisort
- array_multisort实现PHP多维数组排序示例讲解
- 关于SpringMVC xml配置及运行原理
- 【Plan 第六场】【后缀数组模板】
- Android 添加系统服务
- Android 自定义控件 轻松实现360软件详情页
- Junit测试
- PHP array_multisort对多维数组或多个数组排序
- 独立思考锁表了咋整
- 欢迎使用CSDN-markdown编辑器
- C和指针读后笔记
- BNU 13288 Bi-shoe and Phi-shoe(欧拉函数)
- Kernel Parameters
- Android活动生命周期
- 看好你的门-保护数据存储区(3)-XPath注入防御
- scrollview 和listview共存问题