php教程

超轻量级php框架startmvc

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

更新时间:2020-03-26 20:04:25 作者:startmvc
本文实例讲述了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"
 }
}

PS:这里再为大家推荐一款关于排序的演示工具供大家参考:

在线动画演示插入/选择/冒泡/归并/希尔/快速排序算法过程工具: http://tools.jb51.net/aideddesign/paixu_ys

PHP 数组 键值 排序