当前位置: 首页 > 编程笔记 >

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

邵亦
2023-03-14
本文向大家介绍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"
 }
}

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

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

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数据结构与算法教程》、《php程序设计算法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP常用遍历算法与技巧总结》及《PHP数学运算技巧总结》

希望本文所述对大家PHP程序设计有所帮助。

 类似资料:
  • 我有一个,其中的键是字符串。我需要获取这些键并根据键大小(即字符串长度)对其进行排序,然后将其存储在某个中。 注意:如果两个键的大小相同,那么我们可以把它放在任何顺序。 为(如)。

  • 本文向大家介绍PHP实现根据数组的值进行分组的方法,包括了PHP实现根据数组的值进行分组的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP实现根据数组的值进行分组的方法。分享给大家供大家参考,具体如下: PHP根据数组的值分组,php array中没有自带这个函数但是很常用,今天写了出来记录一下。 代码: 运行结果如下: 更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP

  • 本文向大家介绍php根据某字段对多维数组进行排序的方法,包括了php根据某字段对多维数组进行排序的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php根据某字段对多维数组进行排序的方法。分享给大家供大家参考。具体分析如下: 根据某字段对多维数组进行排序,在看到array_multisort方法的作用时突然想到,可以用来做这个方法 这段代码可实现根据field字段对数组进行排序 希望本

  • 我有学生(弦)和老师(弦列表)。我想根据讲师人数按降序提取记录。讲师如下示例:[a、b、c]-3、[e、f]-2、[g、h、i、j]-4。 我要按4,3,2的顺序。 这取决于现场讲师阵列的大小。如何使用mongoTemplate或自定义mongodb查询或聚合进行查询??

  • 问题内容: 我正在尝试根据内部数组中的特定值对我的PHP哈希表进行排序。数据结构如下所示: 我已经尝试过 ksort , sort , usort, 但是似乎没有任何作用。我正在尝试根据 名称键 向下两级进行排序。 这是我尝试使用usort的尝试: 有没有简单的方法可以做到这一点,或者我需要编写一个自定义排序功能? 问题答案: 思考,更有用和实用的 如何使用