php uasort 多维数组中值排序
2013-05-13 15:00
399 查看
hp中根据数组的键(key)进行比较,排序,有很多内置函数可以轻松解决,如krsort(),ksort()等。如果是根据数组的值(value)进行比较就麻烦一些。
如果值没有重复的情况,可以先用array_flip()来交换键和值,然后krsort(),最后再array_flip()交换回来,就可以比较大小了。如果要截取数组,可用array_slice()。
如果有值重复的情况,就要用到一些排序算法了,不过php有很强大的函数uasort(),使用自定义的比较函数对数组中的值进行排序并保持索引关联,usort()则会重建索引。
例2:
按城市名称排序
function provinceAsc($a, $b){ return strcasecmp($a['ename'], $b['ename']) ;}
uasort($city,'provinceAsc');
如果值没有重复的情况,可以先用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 ) )
例2:
$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 多维数组排序(usort,uasort)
- php多维数组自定义排序 uasort()
- php多维数组自定义排序 uasort()
- php多维数组自定义排序 uasort()
- PHP 多维数组排序(usort,uasort)
- PHP 多维数组排序(usort,uasort)
- php多维数组自定义排序 uasort()
- php多维数组按用户自定义顺序排序uasort()
- array_multisort实现PHP多维数组排序示例讲解
- php中多维数组排序
- PHP中有关多维数组排序
- PHP 多维数组根据其中一个字段的值排序
- php 使用多维数组中的某一列值排序
- Php 数组排序之多维数组排序
- php 一维数组排序与多维数组排序
- php根据某字段对多维数组进行排序的方法
- PHP多维数组指定某个键来排序
- PHP 多维数组根据某个字段排序
- PHP多维数组排序