PHP 使用用户自定义的比较函数对数组元素排序
来源:互联网 发布:python 目录名称无效 编辑:程序博客网 时间:2024/05/20 07:35
usort()函数使用用户自定义比较函数对数组中对元素进行排序,如果排序的数组需要使用不寻常的标准来进行排序,我们就使用该函数.
下面我直接贴出我的代码,在代码中我会有一个详细的注释.
1.对一维数组使用自定义函数进行排序.
//定义一个一维数组$array = [5,6,9,3,10];//自定义比较函数,比较函数有两个参数,参数的意义是数组中的某个元素的键值.比//较函数中数组的元素键值比较,必须返回一个大于,小于或者等于0的整数function rank($a,$b){ //如果$a元素小于$b元素 //如果是按照升序的排列,应该返回一个负整数,代表将小的元素放在前面 //如果是按照升序的降序,应该返回一个正整数,代表将大的元素放在前面 if($a < $b){ return -1; }elseif ($a > $b){ //如果$a 大于 $b //如果按照升序排列,应该返回一个正整数. //如果按照降序排列,就返回一个负整数. return 1; }else{ //如果$a = $b,返回0 return 0; }}//我们使用usort函数调用自定义排序函数,对数组进行排序,usrot函数是对数组元素赋予了新的键名.旧的键名被删除。//第二个参数是回调函数,就是我们自定义的排序函数.usort($array,'rank');var_dump($array);
二.对二维数组进行排序,按照不寻常对数组进行排序.
<?php//定义一个二维数组$array = [['count'=>5],['count'=>3],['count'=>9],['count'=>6],['count'=>15]];var_dump($array);//自定义排序函数,我们按照索引数组键值中每个关联数组中count索引名的键值进行排序。//前面已经说过了,自定义排序函数的参数是数组的某个元素的键值.function rank($a,$b){ if($a['count'] < $b['count']){ return -1; }elseif ($a['count'] > $b['count']){ return 1; }else{ return 0; }}//使用usort函数调用自定义的排序函数,进行排序usort($array,'rank');var_dump($array);
注意:使用自定义比较函数进行排序,两个参数排序,必须返回一个正整数或者负整数,或者0,usort函数使用自定义函数进行排序,是将旧键名删除,重新赋与键值新的键名,而不是将键名排序.
阅读全文
3 0
- PHP 使用用户自定义的比较函数对数组元素排序
- usort( )函数—使用用户自定义的比较函数对数组中的值进行排序
- 如何使用强大的PHP函数对数组进行排序
- PHP 数组的各种排序 原:如何使用强大的PHP函数对数组进行排序
- 不使用PHP内置排序函数对二维数组实现快速排序的面试题
- PHP 数组排序函数的使用
- php自定义对二维数组进行排序
- 对一个数组元素排序,对应的数组元素排序
- php数组排序函数 比较全面
- php数组排序函数 比较全面
- PHP下对数组进行排序的函数
- 对ArrayList的自定义元素进行排序
- stl排序函数用户自定义比较函数扩展
- 使用sort 和自定义比较函数对任意成员变量排序
- 使用冒泡排序算法对数组元素进行排序
- PHP - 数组的排序函数
- PHP数组的排序函数
- C++数组元素比较排序
- 300. Longest Increasing Subsequence
- 51nod 1006 最长公共子序列Lcs【模板】
- 【modbus】libmodbus库的移植与使用
- 关于端口号
- Java运算符优先级
- PHP 使用用户自定义的比较函数对数组元素排序
- Dubbo架构设计详解
- 【mysql】三种方法为root账户指定密码
- php安装gd库扩展
- 【理论实践】#define 和const带给开发者的影响区别
- 模式识别(聚类分析算法))
- patch的使用
- 被低估的BIRT报表(六):报表参数与模糊查询
- Http请求默认值--Jmeter