多维关联数组排序问题

  业务需求:学生成绩需要从不同的数据表中读出,计算总分之后需要按着成绩降序排列,同时数据又是关联数组,从而无法直接进行相关排序,从而需要先将需要排序的字段从数组中分离出来,然后使用array_multisort()函数进行排序操作:

举例如下:

(1)分离排序字段

foreach ($userInfo as $key=>$val){
  $userId[$key] = $val[‘uid‘];
  $totalScore[$key] = $val[‘total_score‘];
}

(2)按着total_score降序,uid升序排列数组:

array_multisort($totalScore,SORT_DESC,$userId,SORT_ASC,$userInfo);

时间: 2024-10-13 07:55:41

多维关联数组排序问题的相关文章

多维关联数组---按其中的一对值来排序

例子: $arr = [ ['ss'=>4,'name'=>'我'], ['ss'=>1,'name'=>'b'], ['ss'=>2,'name'=>'c'], ['ss'=>7,'name'=>'a'], ['ss'=>3,'name'=>'你'] ]; 比如我要按name的值来排序,按拼音升序排序 效果: 解决方法: function tt($n){ return $n['name']; } $arr1 = array_map('tt',$

php中二维数组排序问题方法详解

合肥开源IT教育分享一篇<php中二维数组排序问题方法详解>的文章希望能够帮助在学习php的新手们,如果还有什么不懂的问题 可以关注我们的官方网站:www.kyitjy.com  豪华的名师团队,多位技术专家授课,多位核心研发工程师研发授课. PHP中二维数组排序,可以使用PHP内置函数uasort() 示例一: 使用用户自定义的比较函数对数组中的值进行排序并保持索引关联 回调函数如下:注意回调函数的返回值是负数或者是false的时候,表示回调函数的第一个参数在前,第二个参数在后排列 $per

关联数组和顺序数组的应用场景

简而言之:   关联数组:   适用:根据给定的条件,即键值,快速搜索   不适用:排序,尤其对于维数较多的关联数组   eg: $arr[$key1][$key2][$key3] 根据$key3对该数组进行排序 顺序数组:   适用:排序   不适用:根据给定的条件,快速搜索 结论:应该根据条件选择合适类型的数组

smarty访问数组中的数据,如果是关联数组直接用点.

$tpl=new Smarty();//新建一个smarty对象,我使用的是Smarty-3.1.6版本 1.设置smarty模板路径$tpl->setTemplateDir():默认情况下是templates 2.设置smarty模板编译路径$tpl->setCompileDir();默认情况下是templates_c 3.设置smarty模板引擎的左右 分隔符, $tpl->left_delimiter="<{";        $tpl->right

***php 数组添加关联元素的方法小结(关联数组添加元素)

我们这里介绍的是在数组中再增加关联数组了,这个就合成了多维数组,下面我来给大家举几个实例,希望对各位同学会有所帮助哈. 在"php 数组添加元素方法总结这篇文章中介绍了如何给数组添加元素,那么我想添加$array=array('title'=>'php教程')这样的元素怎么办呢. array_push, array_pop, array_shift, array_unshift 这几个函数都是为数字类型的索引数组设计的. 要想实现关联数组的添加可以使用array_merge方法或者是+操作

结对开发之返回一个二维整数数组中最大联通子数组的和

一.题目要求 输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n)题目:返回一个二维整数数组中最大子数组的和 二.解题思路 先对二维数组进行了重构,形成一个环状二维数组,然后再用求二维数组子矩阵最大和的方法求得最终结果. 三.程序代码 2 #include<iostream.h> 3 int main(int argc, char* argv[]

js 关联数组

踩得坑: JS ,通过 new Array()创建了一个数组: var param =  new Array();param["key1"] = value1;param["key2"] = value2;param["key3"] = value3; 打印  param.length 时 一直为0; 发现: js关联数组的属性:length,其数值记录的是key为整数的元素个数 当某元素key为字符串的时候,不计入length中. 办法: Ob

返回一个二维整数数组中最大联通子数组的和

题目: 输入一个二维整形数组,数组里有正数也有负数. 求所有子数组的和的最大值. 要求: 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章发表一篇博客文章讲述设计思想,出现的问题,可能的解决方案(多选).源代码.结果截图.总结. 思想: 在看到本题目后,想了很久也没有想到比较满意的解决方法,觉得题目比较难,超出了我的能力范围.不过,个人认为可能用到了图论的知识,但是学的不好.根据上图给定的二维数组求解最大联通数组也许比较简单.以一个非负

返回一个二维整数数组中最大联通子数组的和6

1 问题:返回一个二维整数数组中最大联通子数组的和 2 思路:对n*m的二维数组进行分解,分解为n个一维数组,再先求这n个一维数组的最大子数组和,并记下每行最大一维子数组的下标如2-5,这是就会分两种情况第一种是行之间的最大子数组是相连的,如第一行是2-5,第二行是3-6,这是直接相加就行.第二种是不相连的如第一行是2-5,第二行是6-7,这时候就把每行的最大子数组看成一个整体,再使每个最大数组块进行相连,求使其相连的最小代价.最后就可求出最大联通子数组的和. 3 代码 #include<ios