PHP实现根据数组某个键值大小进行排序的方法
这篇文章主要介绍了PHP实现根据数组某个键值大小进行排序的方法,涉及php针对数组的遍历、排序等相关操作技巧,需要的朋友可以参考下。
本文实例讲述了PHP实现根据数组某个键值大小进行排序的方法,分享给大家供大家参考,具体如下:
问题:针对给定数组的某个键的键值进行排序
解决方法:
- //$a是排序数组,$b是要排序的数据集合,$result是最终结果
 - $b = array(
 - array('name'=>'北京','nums'=>'200'),
 - array('name'=>'上海','nums'=>'80'),
 - array('name'=>'广州','nums'=>'150'),
 - array('name'=>'深圳','nums'=>'70')
 - );
 - $a = array();
 - foreach($b as $key=>$val){
 - $a[] = $val['nums'];//这里要注意$val['nums']不能为空,不然后面会出问题
 - }
 - //$a先排序
 - rsort($a);
 - $a = array_flip($a);
 - $result = array();
 - foreach($b as $k=>$v){
 - $temp1 = $v['nums'];
 - $temp2 = $a[$temp1];
 - $result[$temp2] = $v;
 - }
 - //这里还要把$result进行排序,健的位置不对
 - ksort($result);
 - //然后就是你想看到的结果了
 - var_dump($result);
 
运行结果:
- array(4) {
 - [0]=>
 - array(2) {
 - ["name"]=>
 - string(4) "北京"
 - ["nums"]=>
 - string(3) "200"
 - }
 - [1]=>
 - array(2) {
 - ["name"]=>
 - string(4) "广州"
 - ["nums"]=>
 - string(3) "150"
 - }
 - [2]=>
 - array(2) {
 - ["name"]=>
 - string(4) "上海"
 - ["nums"]=>
 - string(2) "80"
 - }
 - [3]=>
 - array(2) {
 - ["name"]=>
 - string(4) "深圳"
 - ["nums"]=>
 - string(2) "70"
 - }
 - }