当前位置:首页 > PHP教程 > php数组 > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2021-09-04 23:43:00 浏览: 评论:0 

这篇文章主要介绍了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. //$a先排序 
  12. rsort($a); 
  13. $a = array_flip($a); 
  14. $result = array(); 
  15. foreach($b as $k=>$v){ 
  16.   $temp1 = $v['nums']; 
  17.   $temp2 = $a[$temp1]; 
  18.   $result[$temp2] = $v
  19. //这里还要把$result进行排序,健的位置不对 
  20. ksort($result); 
  21. //然后就是你想看到的结果了 
  22. 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. }

Tags: PHP数组键值大小排序

分享到: