php uasort 多维数组中值排序
来源:互联网 发布:js判断鼠标在div上 编辑:程序博客网 时间:2024/05/18 17:59
hp中根据数组的键(key)进行比较,排序,有很多内置函数可以轻松解决,如krsort(),ksort()等。如果是根据数组的值(value)进行比较就麻烦一些。
如果值没有重复的情况,可以先用array_flip()来交换键和值,然后krsort(),最后再array_flip()交换回来,就可以比较大小了。如果要截取数组,可用array_slice()。
如果有值重复的情况,就要用到一些排序算法了,不过php有很强大的函数uasort(),使用自定义的比较函数对数组中的值进行排序并保持索引关联,usort()则会重建索引。
function cmp($a,$b){ if($a["vote_num"] == $b["vote_num"]) { return 0; } return($a["vote_num"] > $b["vote_num"]) ? -1 : 1; } $arr = Array( 0 =>Array ( o_id=> 1861, o_name=> 2, o_pic=> 'http://g.pps.tv/image.gif' , o_detail=> 人人, vote_num=> 1 ), 1 =>Array ( o_id=> 1844, o_name=> 芭比, o_pic=>'http://upload.ppstream.com/game_image/dfxxz/dfVIP.files/shenxiandao.jpg', o_detail=> 也是美女呢, vote_num=> 2 ), 2 =>Array ( o_id=> 1843, o_name=> 程程, o_pic=>'http://g.pps.tv./upload_img/2011-06/31554_4d0088da7a61ad9c8c02a530be94d98e.png', o_detail=> 美女哦, vote_num=> 3 )); uasort($arr,”cmp“); echo ‘<pre style="text-align:left" >’; print_r ($arr); echo ‘< /pre >’;返回Array([2] => Array([o_id] => 1843[o_name] => 程程[o_pic] =>http://g.pps.tv./upload_img/2011-06/31554_4d0088da7a61ad9c8c02a530be94d98e.png[o_detail] => 美女哦[vote_num] => 3)[1] => Array([o_id] => 1844[o_name] => 芭比[o_pic] =>http://upload.ppstream.com/game_image/dfxxz/dfVIP.files/shenxiandao.jpg[o_detail] => 也是美女呢[vote_num] => 2)[0] => Array([o_id] => 1861[o_name] => 2[o_pic] => http://g.pps.tv/image.gif[o_detail] => 人人[vote_num] => 1))
$city=array ( 10000000 => array ( 'ename' => 'Beijing', 'cname' => '北京', 'shortname' => 'BJ', ), 11000000 => array ( 'ename' => 'Tianjin', 'cname' => '天津', 'shortname' => 'TJ', ),
按城市名称排序
function provinceAsc($a, $b){ return strcasecmp($a['ename'], $b['ename']) ;}
uasort($city,'provinceAsc');
- php uasort 多维数组中值排序
- PHP 多维数组排序(usort,uasort)
- PHP 多维数组排序(usort,uasort)
- php多维数组自定义排序 uasort()
- php比较多维数组中值的大小排序实现代码
- php自定义排序uasort
- PHP多维数组排序
- php 多维数组排序
- PHP多维数组排序
- php多维数组排序
- php多维数组排序
- php 多维数组排序
- PHP多维数组排序
- PHP多维数组排序
- PHP多维数组排序
- PHP:多维数组排序
- PHP多维数组排序
- php 多维数组排序
- iOS学习笔记
- CLR via C# 读书笔记2-1
- OpenCV for Ios 学习笔记(10)-标记检测总结
- struts2路径问题
- Oracle Flashback技术总结
- php uasort 多维数组中值排序
- CLR via C# 读书笔记2-2
- memmov实现
- mysql 日期操作
- 通过USB安装ESXI 5.1
- centOS学习(1)--chgrp、chown、chmod命令解析
- ubuntu下tftp服务配置及应用
- 有关汽车仪表的LED与LCD识别
- jQuery实现长文字部分显示