PHP实现根据数组某个键值大小进行排序的方法

这篇文章主要介绍了PHP实现根据数组某个键值大小进行排序的方法,涉及php针对数组的遍历、排序等相关操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP实现根据数组某个键值大小进行排序的方法,分享给大家供大家参考,具体如下:

问题:针对给定数组的某个键的键值进行排序

解决方法:

  1. //$a是排序数组,$b是要排序的数据集合,$result是最终结果
  2. $b = array(
  3. array('name'=>'北京','nums'=>'200'),
  4. array('name'=>'上海','nums'=>'80'),
  5. array('name'=>'广州','nums'=>'150'),
  6. array('name'=>'深圳','nums'=>'70')
  7. );
  8. $a = array();
  9. foreach($b as $key=>$val){
  10. $a[] = $val['nums'];//这里要注意$val['nums']不能为空,不然后面会出问题
  11. }
  12. //$a先排序
  13. rsort($a);
  14. $a = array_flip($a);
  15. $result = array();
  16. foreach($b as $k=>$v){
  17. $temp1 = $v['nums'];
  18. $temp2 = $a[$temp1];
  19. $result[$temp2] = $v;
  20. }
  21. //这里还要把$result进行排序,健的位置不对
  22. ksort($result);
  23. //然后就是你想看到的结果了
  24. var_dump($result);

运行结果:

  1. array(4) {
  2. [0]=>
  3. array(2) {
  4. ["name"]=>
  5. string(4) "北京"
  6. ["nums"]=>
  7. string(3) "200"
  8. }
  9. [1]=>
  10. array(2) {
  11. ["name"]=>
  12. string(4) "广州"
  13. ["nums"]=>
  14. string(3) "150"
  15. }
  16. [2]=>
  17. array(2) {
  18. ["name"]=>
  19. string(4) "上海"
  20. ["nums"]=>
  21. string(2) "80"
  22. }
  23. [3]=>
  24. array(2) {
  25. ["name"]=>
  26. string(4) "深圳"
  27. ["nums"]=>
  28. string(2) "70"
  29. }
  30. }