二维数组里,根据数组字段为条件,进行总体排序(二维排序)

1 <?php
 2 /**
 3  * 二维数组根据某个字段排序
 4  * 功能:按照用户的年龄倒序排序
 5  * @author ruxing.li
 6  */
 7 header(‘Content-Type:text/html;Charset=utf-8‘);
 8 $arrUsers = array(
 9     array(
10             ‘id‘   => 1,
11             ‘name‘ => ‘张三‘,
12             ‘age‘  => 25,
13     ),
14     array(
15             ‘id‘   => 2,
16             ‘name‘ => ‘李四‘,
17             ‘age‘  => 23,
18     ),
19     array(
20             ‘id‘   => 3,
21             ‘name‘ => ‘王五‘,
22             ‘age‘  => 40,
23     ),
24     array(
25             ‘id‘   => 4,
26             ‘name‘ => ‘赵六‘,
27             ‘age‘  => 31,
28     ),
29     array(
30             ‘id‘   => 5,
31             ‘name‘ => ‘黄七‘,
32             ‘age‘  => 20,
33     ),
34 );
35
36
37 $sort = array(
38         ‘direction‘ => ‘SORT_DESC‘, //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
39         ‘field‘     => ‘age‘,       //排序字段
40 );
41 $arrSort = array();
42 foreach($arrUsers AS $uniqid => $row){
43     foreach($row AS $key=>$value){
44         $arrSort[$key][$uniqid] = $value;
45     }
46 }
47 if($sort[‘direction‘]){
48     array_multisort($arrSort[$sort[‘field‘]], constant($sort[‘direction‘]), $arrUsers);
49 }
50
51 var_dump($arrUsers);
52
53 /*
54 输出结果:
55
56 array (size=5)
57   0 =>
58     array (size=3)
59       ‘id‘ => int 5
60       ‘name‘ => string ‘黄七‘ (length=6)
61       ‘age‘ => int 20
62   1 =>
63     array (size=3)
64       ‘id‘ => int 2
65       ‘name‘ => string ‘李四‘ (length=6)
66       ‘age‘ => int 23
67   2 =>
68     array (size=3)
69       ‘id‘ => int 1
70       ‘name‘ => string ‘张三‘ (length=6)
71       ‘age‘ => int 25
72   3 =>
73     array (size=3)
74       ‘id‘ => int 4
75       ‘name‘ => string ‘赵六‘ (length=6)
76       ‘age‘ => int 31
77   4 =>
78     array (size=3)
79       ‘id‘ => int 3
80       ‘name‘ => string ‘王五‘ (length=6)
81       ‘age‘ => int 40
82
83 */

  

时间: 2024-11-04 02:26:40

二维数组里,根据数组字段为条件,进行总体排序(二维排序)的相关文章

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

 要求: 1,输入一个二维整形数组,数组里有正数也有负数. 2,二维数组中连续的一个子矩阵组成一个子数组,每个子数组都有一个和, 3,求所有子数组的和的最大值. 设计思路: 参照一维整数数组求解最大子数组的方法,我们想着将二维数组通过行不同,列相加的方法转化为一维整数数组再求解最大子数组之和. 具体实现:先求出每一行的最大子数组之和,之后比较得出最大和MaxSum,然后通过上述方法求二行的最大子数组之和并与MaxSum比较,用MaxSum存放较大值.以此类推,求三行,四行... 最后实现最大子数

我的Java开发学习之旅------&gt;使用循环递归算法把数组里数据数组合全部列出

面试题如下:把一个数组里的数组合全部列出,比如1和2列出来为1,2,12,21. (面试题出自<Java程序员面试宝典>) 代码如下: import java.util.Arrays; import java.util.LinkedList; import java.util.List; /** * 把一个数组里的数组集合全部列出,比如1和2列出来为1,2,12,21 */ public class ListAll { public static void main(String[] args

python如何将数组分成几个区间,取每个区间的最大值存到另一个数组里

python如何将数组分成几个区间,取每个区间的最大值存到另一个数组里 贴吧上有人问python 问题:有一段数组,把它分成几个区间,取每个区间的最大值存到另一个数组里 比如数组a[1,2,3,4,5,6,7,8,9,8,7,6,5,4,3,2,1,0] 看看python培训黄哥所写的2个方法. 第一种方法: # coding:utf-8"""黄哥python远程视频培训班https://github.com/pythonpeixun/article/blob/master/

PHP二维数组如何根据某个字段排序

分享下PHP二维数组如何根据某个字段排序的方法. 从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 本文记录的要实现的功能类似于 MySQL 中的 ORDER BY,上个项目中有遇到这样的一个需求. 要求:从两个不同的表中获取各自的4条数据,然后整合(array_merge)成一个数组,再根据数据的创建时间降序排序取前4条. 这个要求就不是 ORDER BY 能解决的问题了.因此翻看 PHP手册查找到了如下方法,做此笔记.

PHP使用正则表达式分离出HTML里我们所需的数据,封装到二维数组里

HTML代码(reg.html) <TR id=J-item-1 class="J-item " sizset="53" sizcache="3"> <TD class=time> <P class=time-d> 2015.07.18 </P> </TD> <TD class=memo sizset="53" sizcache="3">

环状二维数组最大子数组和

一.题目: 返回一个二维整数数组中最大子数组的和.二.要求:    输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样.数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 三.成员 编写程序者:岳竞一 协同者:付东 四.编程思路 首先,根据一维数组原理,可以先求出每个行数组的最大子数组和. 然后,将二维3行数组分写成5行子数组的数组,3,4行为1,2和2,3行一起的子数组,5行为,1,2,3行的

结对开发-求环状二维数组最大子数组

结对成员:信1201-1班    黄亚萍 信1201-1班    袁亚姣 一.题目要求 要求:            输入一个二维整形数组,数组里有正数也有负数.            二维数组首尾相接,象个一条首尾相接带子一样.            数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.            求所有子数组的和的最大值.要求时间复杂度为O(n)题目:返回一个二维整数数组中最大子数组的和. 二.设计思路 类似于3,将二维数组转化为一维数组来求最大子数组

数组(一维数组、二维数组)

数组概述 C# 数组从零开始建立索引,即数组索引从零开始.C# 中数组的工作方式与在大多数其他流行语言中的工作方式类似.但还有一些差异应引起注意. 这些其实和泛型有些类似,数组的操作没有泛型方便,但是性能却不是泛型所能比拟的 声明数组时,方括号 ([]) 必须跟在类型后面,而不是标识符后面.在 C# 中,将方括号放在标识符后是不合法的语法. int[] table; // not int table[]; 另一细节是,数组的大小不是其类型的一部分,而在 C 语言中它却是数组类型的一部分.这使您可

二维数组最大子数组(结对开发)

1.题目要求 题目:返回一个二维整数数组中最大联通子数组的和. 要求: 输入一个二维整形数组,数组里有正数也有负数. 求所有子数组的和的最大值. 2.设计思想: 对n*m的二维数组进行分解,分解为n个一维数组,再先求这n个一维数组的最大子数组和,并记下每行最大一维子数组的下标如2-5,这是就会分两种情况第一种是行之间的最大子数组是相连的,如第一行是2-5,第二行是3-6,这是直接相加就行.第二种是不相连的如第一行是2-5,第二行是6-7,这时候就把每行的最大子数组看成一个整体,再使每个最大数组块

环状二维数组最大子数组求和

题目:返回一个二维整数数组中最大子数组的和.要求:输入一个二维整形数组,数组里有正数也有负数.二维数组首尾相接,象个一条首尾相接带子一样. n数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和.求所有子数组的和的最大值.要求时间复杂度为O(n). 结对编程要求: 两人结对完成编程任务. 一人主要负责程序分析,代码编程. 一人负责代码复审和代码测试计划. 发表一篇博客文章讲述两人合作中的过程.体会以及如何解决冲突(附结对开发的工作照). 结对开发过程: 这次的编程开发是基于上次的以为数