php 多维数组 array sort 排序 :array_multisort

1.参考链接:

  php简单实现多维数组排序的方法

  参考二: 这个链接很好,可以直接看这个:PHP array_multisort—对多个数组或多维数组进行排序

2.案例一:

 1     //13: 最佳:
 2     public function zjService()
 3     {
 4         //小组得分:
 5         $team = array();
 6         //学生得分:
 7         $student = array();
 8
 9         //取出所有的小组:
10         $TeamModel = new TeamModel();
11         $where["where"] = " 1 =1 order by orderBy asc, id asc ";
12         $data = $TeamModel->getDataList($where);
13
14         foreach ($data["rows"] as $k => $model)
15         {
16             $team[] = $this->teamScoreService($model->id);
17         }
18
19         $teamSort = array();
20         foreach ($team as $k => $v)
21         {
22             $teamSort[] = $v["total"];
23         }
24
25
26         //取出所有的学生:
27         $StudentModel = new StudentModel();
28         $where["where"] = " 1 =1 order by orderBy asc, id asc ";
29         $data = $StudentModel->getDataList($where);
30
31         foreach ($data["rows"] as $k => $model)
32         {
33             $student[] = $this->studentScoreService($model->id);
34         }
35
36         $studentSort = array();
37         foreach ($student as $k => $v)
38         {
39             $studentSort[] = $v["total"];
40         }
41
42         //排序之前:
43         echo "<pre>";
44         echo "排序之前:";
45         var_dump($team);
46         var_dump($teamSort);
47         var_dump($student);
48         var_dump($studentSort);
49
50         //排序:
51         array_multisort($teamSort,SORT_DESC,SORT_NUMERIC,$team);
52         array_multisort($studentSort,SORT_DESC,SORT_NUMERIC,$student);
53
54         echo "排序之后:";
55         var_dump($team);
56         var_dump($student);
57
58         $parameter = array();
59         $this->display("Home/iframe/zj.php", $parameter);
60     }

注意:排序数组

$teamSort[] = $v["total"]; 对于是关联的数组,也可以是用$teamsort[$k] = $v["total"]

参见:参考二:


排序之前: $team, $teamSort ,  $student , $studentSort

  1 排序之前:array(4) {
  2   [0]=>
  3   array(6) {
  4     ["kq"]=>
  5     int(20)
  6     ["rw"]=>
  7     float(20)
  8     ["zz"]=>
  9     int(40)
 10     ["ls"]=>
 11     int(18)
 12     ["total"]=>
 13     float(98)
 14     ["name"]=>
 15     string(4) "1组"
 16   }
 17   [1]=>
 18   array(6) {
 19     ["kq"]=>
 20     int(0)
 21     ["rw"]=>
 22     int(0)
 23     ["zz"]=>
 24     int(10)
 25     ["ls"]=>
 26     int(18)
 27     ["total"]=>
 28     int(28)
 29     ["name"]=>
 30     string(4) "2组"
 31   }
 32   [2]=>
 33   array(6) {
 34     ["kq"]=>
 35     int(0)
 36     ["rw"]=>
 37     int(0)
 38     ["zz"]=>
 39     int(15)
 40     ["ls"]=>
 41     int(18)
 42     ["total"]=>
 43     int(33)
 44     ["name"]=>
 45     string(4) "3组"
 46   }
 47   [3]=>
 48   array(6) {
 49     ["kq"]=>
 50     int(0)
 51     ["rw"]=>
 52     int(0)
 53     ["zz"]=>
 54     int(20)
 55     ["ls"]=>
 56     int(18)
 57     ["total"]=>
 58     int(38)
 59     ["name"]=>
 60     string(4) "4组"
 61   }
 62 }
 63 array(4) {
 64   [0]=>
 65   float(98)
 66   [1]=>
 67   int(28)
 68   [2]=>
 69   int(33)
 70   [3]=>
 71   int(38)
 72 }
 73 array(12) {
 74   [0]=>
 75   array(6) {
 76     ["kq"]=>
 77     int(20)
 78     ["rw"]=>
 79     float(20)
 80     ["zz"]=>
 81     int(10)
 82     ["ls"]=>
 83     int(6)
 84     ["total"]=>
 85     float(56)
 86     ["name"]=>
 87     string(6) "杨曼"
 88   }
 89   [1]=>
 90   array(6) {
 91     ["kq"]=>
 92     int(0)
 93     ["rw"]=>
 94     int(0)
 95     ["zz"]=>
 96     int(0)
 97     ["ls"]=>
 98     int(6)
 99     ["total"]=>
100     int(6)
101     ["name"]=>
102     string(9) "朱延月"
103   }
104   [2]=>
105   array(6) {
106     ["kq"]=>
107     int(0)
108     ["rw"]=>
109     int(0)
110     ["zz"]=>
111     int(0)
112     ["ls"]=>
113     int(6)
114     ["total"]=>
115     int(6)
116     ["name"]=>
117     string(9) "牛清倩"
118   }
119   [3]=>
120   array(6) {
121     ["kq"]=>
122     int(0)
123     ["rw"]=>
124     int(0)
125     ["zz"]=>
126     int(0)
127     ["ls"]=>
128     int(6)
129     ["total"]=>
130     int(6)
131     ["name"]=>
132     string(9) "施友康"
133   }
134   [4]=>
135   array(6) {
136     ["kq"]=>
137     int(0)
138     ["rw"]=>
139     int(0)
140     ["zz"]=>
141     int(10)
142     ["ls"]=>
143     int(6)
144     ["total"]=>
145     int(16)
146     ["name"]=>
147     string(9) "范俊召"
148   }
149   [5]=>
150   array(6) {
151     ["kq"]=>
152     int(0)
153     ["rw"]=>
154     int(0)
155     ["zz"]=>
156     int(0)
157     ["ls"]=>
158     int(6)
159     ["total"]=>
160     int(6)
161     ["name"]=>
162     string(9) "陈开娜"
163   }
164   [6]=>
165   array(6) {
166     ["kq"]=>
167     int(0)
168     ["rw"]=>
169     int(0)
170     ["zz"]=>
171     int(15)
172     ["ls"]=>
173     int(6)
174     ["total"]=>
175     int(21)
176     ["name"]=>
177     string(9) "杨梦佳"
178   }
179   [7]=>
180   array(6) {
181     ["kq"]=>
182     int(0)
183     ["rw"]=>
184     int(0)
185     ["zz"]=>
186     int(10)
187     ["ls"]=>
188     int(6)
189     ["total"]=>
190     int(16)
191     ["name"]=>
192     string(6) "丁宁"
193   }
194   [8]=>
195   array(6) {
196     ["kq"]=>
197     int(0)
198     ["rw"]=>
199     int(0)
200     ["zz"]=>
201     int(20)
202     ["ls"]=>
203     int(6)
204     ["total"]=>
205     int(26)
206     ["name"]=>
207     string(6) "脱瑞"
208   }
209   [9]=>
210   array(6) {
211     ["kq"]=>
212     int(0)
213     ["rw"]=>
214     int(0)
215     ["zz"]=>
216     int(0)
217     ["ls"]=>
218     int(6)
219     ["total"]=>
220     int(6)
221     ["name"]=>
222     string(6) "沈昕"
223   }
224   [10]=>
225   array(6) {
226     ["kq"]=>
227     int(0)
228     ["rw"]=>
229     int(0)
230     ["zz"]=>
231     int(0)
232     ["ls"]=>
233     int(6)
234     ["total"]=>
235     int(6)
236     ["name"]=>
237     string(9) "沈春香"
238   }
239   [11]=>
240   array(6) {
241     ["kq"]=>
242     int(0)
243     ["rw"]=>
244     int(0)
245     ["zz"]=>
246     int(20)
247     ["ls"]=>
248     int(6)
249     ["total"]=>
250     int(26)
251     ["name"]=>
252     string(9) "黄佳兴"
253   }
254 }
255 array(12) {
256   [0]=>
257   float(56)
258   [1]=>
259   int(6)
260   [2]=>
261   int(6)
262   [3]=>
263   int(6)
264   [4]=>
265   int(16)
266   [5]=>
267   int(6)
268   [6]=>
269   int(21)
270   [7]=>
271   int(16)
272   [8]=>
273   int(26)
274   [9]=>
275   int(6)
276   [10]=>
277   int(6)
278   [11]=>
279   int(26)
280 }

排序之后: $team,  $student

排序之后:array(4) {
  [0]=>
  array(6) {
    ["kq"]=>
    int(20)
    ["rw"]=>
    float(20)
    ["zz"]=>
    int(40)
    ["ls"]=>
    int(18)
    ["total"]=>
    float(98)
    ["name"]=>
    string(4) "1组"
  }
  [1]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(20)
    ["ls"]=>
    int(18)
    ["total"]=>
    int(38)
    ["name"]=>
    string(4) "4组"
  }
  [2]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(15)
    ["ls"]=>
    int(18)
    ["total"]=>
    int(33)
    ["name"]=>
    string(4) "3组"
  }
  [3]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(10)
    ["ls"]=>
    int(18)
    ["total"]=>
    int(28)
    ["name"]=>
    string(4) "2组"
  }
}
array(12) {
  [0]=>
  array(6) {
    ["kq"]=>
    int(20)
    ["rw"]=>
    float(20)
    ["zz"]=>
    int(10)
    ["ls"]=>
    int(6)
    ["total"]=>
    float(56)
    ["name"]=>
    string(6) "杨曼"
  }
  [1]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(20)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(26)
    ["name"]=>
    string(6) "脱瑞"
  }
  [2]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(20)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(26)
    ["name"]=>
    string(9) "黄佳兴"
  }
  [3]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(15)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(21)
    ["name"]=>
    string(9) "杨梦佳"
  }
  [4]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(10)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(16)
    ["name"]=>
    string(6) "丁宁"
  }
  [5]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(10)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(16)
    ["name"]=>
    string(9) "范俊召"
  }
  [6]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(0)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(6)
    ["name"]=>
    string(9) "施友康"
  }
  [7]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(0)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(6)
    ["name"]=>
    string(9) "朱延月"
  }
  [8]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(0)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(6)
    ["name"]=>
    string(6) "沈昕"
  }
  [9]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(0)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(6)
    ["name"]=>
    string(9) "沈春香"
  }
  [10]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(0)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(6)
    ["name"]=>
    string(9) "牛清倩"
  }
  [11]=>
  array(6) {
    ["kq"]=>
    int(0)
    ["rw"]=>
    int(0)
    ["zz"]=>
    int(0)
    ["ls"]=>
    int(6)
    ["total"]=>
    int(6)
    ["name"]=>
    string(9) "陈开娜"
  }
}
时间: 2024-10-20 01:30:49

php 多维数组 array sort 排序 :array_multisort的相关文章

JavaScript中数组Array.sort()排序方法详解

JavaScript中数组的sort()方法主要用于对数组的元素进行排序.其中,sort()方法有一个可选参数.但是,此参数必须是函数. 数组在调用sort()方法时,如果没有传参将按字母顺序(字符编码顺序)对数组中的元素进行排序,如果想按照其他标准进行排序,就需要进行传一个参数且为函数,该函数要比较两个值,并且会返回一个用于说明这两个值的相对顺序的数字. 1.对数字数组进行由小到大的顺序进行排序. 代码: var arr = [22,12,3,43,56,47,4]; arr.sort();

数组Array.sort()排序的方法

数组sort排序 sort比较次数,sort用法,sort常用 描述 方法sort()将在原数组上对数组元素进行排序,即排序时不创建新的数组副本.如果调用方法sort()时没有使用参数,将按字母顺序(更为精确地说,是按照字符编码的顺序)对数组中的元素进行排序.要实现这一点,首先应把数组的元素都转换成字符串(如果有必要的话),以便进行比较. 如果想按照别的顺序进行排序,就必须提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字.比较函数应该具有两个参数a和b,其返回值如下

JS数组去重,js中数组(Array)的排序(sort)

JS数组去重 var ddd = [1,2,4,5,2, 222,1,5,6]; var uq = {}; var rq = []; for(var i=0; i<9; i++){ if(!uq[ddd[i]]){ uq[ddd[i]] = true; rq.push(ddd[i]); } } return rq; js中数组(Array)的排序(sort)注意事项 var arrDemo = new Array(); arrDemo[0] = 10; arrDemo[1] = 50; arrD

14周(二维数组姓名成绩排序)

/* *copyright(c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:14周(二维数组姓名成绩排序) *作者:王忠 *完成日期:2014.12.01 *版本号:v1.0 * *问题描述:初始化同学的成绩,姓氏,按大小排序 *输入描述:无 *程序输出:按照姓名或者成绩大小排序并输出 #include <iostream> #include <string> using namespace std; const int num=8; i

14周(二维数组成绩姓名排序)

/* *copyright(c) 2014,烟台大学计算机学院 *All rights reserved. *文件名称:14周(二维数组成绩姓名排序) *作者:王忠 *完成日期:2014.12.01 *版本号:v1.0 * *问题描述:初始化同学的成绩,姓氏,按大小排序 *输入描述:无 *程序输出:按照姓名或者成绩大小排序并输出 #include <iostream> #include <string> using namespace std; const int num=8; i

二维数组的列排序

给出一个二维数组,请将这个二维数组按第i列(i从1开始)排序,如果第i列相同,则对相同的行按第i+1列的元素排序,如果第i+1列的元素也相同,则继续比较第i+2列,以此类推,直到最后一列.如果第i列到最后一列都相同,则按原序排列. 实现以下接口: 输入一个m*n 的整数数组,实现按规则排列,返回排列后的数组. 调用者会保证: 比如输入数组为: 1,2,3 2,3,4 2,3,1 1,3,1 按第二列排序: 输出: 1,2,3 2,3,1 1,3,1 2,3,4 分析:从最后一列开始使用稳定的排序

模拟数组的sort排序方法

1 //为Object.prototype增加method方法,下次为对象添加方法不必键入prototype 2 Object.prototype.method=function(name,func){ 3 if(!this.prototype[name]){ 4 this.prototype[name]=func; 5 return func; 6 } 7 }; 8 //为数组添加rank排序方法 9 Array.method("rank",function(f){ 10 var t

数组Array的排序sort

JavaScript中的Array对象有自己的排序方法sort(),对数组中的数据项进行排序,但是有时候排序结果不尽如人意,比如 var arr = [12, 1, 2, 21, 3]; arr.sort(); alert(arr); 得到的结果为  1,12,2,21,3 这是为什么呢?因为JavaScript中的排序默认按照ascii字符代码进行排序,也就是说,数字也是按照它们的字符串形式排序的. var strArr = ['a', '2', 'a2', '2a', 'b', '3'];

js数组的sort排序的原理和应用

1.js sort()方法的应用: 首先:如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序.要实现这一点,首先应把数组的元素都转换成字符串(如有必要),以便进行比较. 如果想按照其他标准进行排序,就需要提供比较函数,该函数要比较两个值,然后返回一个用于说明这两个值的相对顺序的数字.比较函数应该具有两个参数 a 和 b,其返回值如下: 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值. 若 a 等于