二维数组排序 array_multisort
2016-02-24 18:49
447 查看
参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。
第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:
SORT_ASC - 默认,按升序排列。(A-Z)
SORT_DESC - 按降序排列。(Z-A)
随后可以指定排序的类型:
SORT_REGULAR - 默认。将每一项按常规顺序排列。
SORT_NUMERIC - 将每一项按数字顺序排列。
SORT_STRING - 将每一项按字母顺序排列。
排序后:
转载请注明出处:/article/10519712.html
第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:
SORT_ASC - 默认,按升序排列。(A-Z)
SORT_DESC - 按降序排列。(Z-A)
随后可以指定排序的类型:
SORT_REGULAR - 默认。将每一项按常规顺序排列。
SORT_NUMERIC - 将每一项按数字顺序排列。
SORT_STRING - 将每一项按字母顺序排列。
public function my_sort($arrays, $sort_key, $sort_order = SORT_ASC, $sort_type = SORT_NUMERIC) { if (is_array($arrays)) { foreach ($arrays as $array) { if (is_array($array)) { $key_arrays[] = $array[$sort_key]; } else { return false; } } } else { return false; } array_multisort($key_arrays, $sort_order, $sort_type, $arrays); return $arrays; } public function test() { $person = array( array('id' => 7, 'name' => 'fj'), array('id' => 2, 'name' => 'tom'), array('id' => 3, 'name' => 'cerry'), array('id' => 1, 'name' => 'bill'), array('id' => 5, 'name' => 'linken'), array('id' => 6, 'name' => 'aadana'), array('id' => 4, 'name' => 'jordan'), ); $person = $this->my_sort($person, 'id', SORT_ASC, SORT_NUMERIC); var_dump($person); }
排序后:
array(7) { [0]=> array(4) { ["id"]=> int(1) ["name"]=> string(4) "bill" ["weight"]=> int(110) ["height"]=> int(190) } [1]=> array(4) { ["id"]=> int(2) ["name"]=> string(3) "tom" ["weight"]=> int(53) ["height"]=> int(150) } [2]=> array(4) { ["id"]=> int(3) ["name"]=> string(5) "cerry" ["weight"]=> int(120) ["height"]=> int(156) } [3]=> array(4) { ["id"]=> int(4) ["name"]=> string(6) "jordan" ["weight"]=> int(70) ["height"]=> int(170) } [4]=> array(4) { ["id"]=> int(5) ["name"]=> string(6) "linken" ["weight"]=> int(80) ["height"]=> int(200) } [5]=> array(4) { ["id"]=> int(6) ["name"]=> string(6) "aadana" ["weight"]=> int(95) ["height"]=> int(110) } [6]=> array(4) { ["id"]=> int(7) ["name"]=> string(2) "fj" ["weight"]=> int(100) ["height"]=> int(180) } }
转载请注明出处:/article/10519712.html
相关文章推荐
- Activity横竖屏切换
- JavaSript模块规范 - AMD规范与CMD规范介绍
- **集团RAC 11g 虚拟机生产库环境
- 【Web API】1.1 ASP.NET Web API入门
- 《高级语言程序设计》课程指导
- [Computer Security : Art and Science] Chapter_1 1.1 基础部分
- Centos7搭建LNMP环境
- USACO-Section 3.2 Factorials(模拟)
- HDU 4994 Revenge of Nim(玄学)(Nim问题)
- 331. Verify Preorder Serialization of a Binary Tree【M】【16】【leetcode】
- 点击导航下的某个栏目,出现在相应区域;滚动到某个区域,导航下的某个栏目相应效果
- UIFont字体大全
- HDU 4993 Revenge of ex-Euclid(暴力)
- java(17)--三层架构示意图
- 【CSS3】变形--原点 transform-origin
- Objective-C 内存管理之 _ARC
- 10步让你成为更优秀的程序员
- C#中的IntPtr类型
- [翻译]AOP编程
- unbantu15.10安装android studio 2.0 beta5