数组自定义排序
2015-08-14 11:31
405 查看
php中数组有很多的排序函数,有时候我们可能根据实际需求,我们需要自定义对数据进行排序。如有这样一个需求:输出学生的相关信息,学生之间按身高降序排列,如果身高相等,则按年龄降序排列。
结果:
//首先定定义一个数组保存学生信息 $arr=array( array('no'=>1,'name'=>'zhangsan','height'=>174,'age'=>17), array('no'=>2,'name'=>'lisi','height'=>172,'age'=>19), array('no'=>3,'name'=>'wangwu','height'=>168,'age'=>22), array('no'=>5,'name'=>'zhaoliu','height'=>184,'age'=>18), array('no'=>4,'name'=>'lijun','height'=>174,'age'=>15), ); //自定义排序函数 function cmp($a,$b){ if($a['height']!=$b['height']) return $a['height']-$b['height']; return -($a['age']-$b['age']); } //调用usort对学生进行排序 usort($arr,"cmp"); var_dump($arr);
结果:
array(5) { [0]=> array(4) { ["no"]=> int(3) ["name"]=> string(6) "wangwu" ["height"]=> int(168) ["age"]=> int(22) } [1]=> array(4) { ["no"]=> int(2) ["name"]=> string(4) "lisi" ["height"]=> int(172) ["age"]=> int(19) } [2]=> array(4) { ["no"]=> int(1) ["name"]=> string(8) "zhangsan" ["height"]=> int(174) ["age"]=> int(17) } [3]=> array(4) { ["no"]=> int(4) ["name"]=> string(5) "lijun" ["height"]=> int(174) ["age"]=> int(15) } [4]=> array(4) { ["no"]=> int(5) ["name"]=> string(7) "zhaoliu" ["height"]=> int(184) ["age"]=> int(18) } }
相关文章推荐
- 软中断和硬中断(转)
- 稀疏矩阵(sparse matrix)
- win10右键怎么添加管理员授权?
- mysql 视图、存储过程和函数
- css3的Background新属性
- ListView没有分割线
- filter如何设置例外的请求
- 算法思想篇(6)————试探算法
- 普通table表格样式及代码大全(全)
- matlab:Excel数据导入C程序中
- ZendStudio快捷键
- css3的Background新属性
- 02 AppCan入门学习之弹性盒子模型
- 关于spring线程池ThreadPoolTaskExecutor的作用
- web开发的编码本质
- 树,森林,二叉树的互相转换
- linux下 监控USB插入事件(NET_LINK、udev),附udev和mdev介绍
- IDataStatistics 获取统计值(唯一值、最值......)
- Codeforces Round #316 (Div. 2) C. Replacement
- Android.mk prebuild