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"
- }
- }