我们在php的数组操作中经常用到对数组进行排序的问题,这里说的是对关联数组进行排序
需要用到函数 array_multisort 。
array_multisort(array_column($arr, 'weight'),SORT_NUMERIC, SORT_ASC, $arr);   // 对关联数组 $arr  将键列'weight'转换为数字进行升序排序
SORT_NUMERIC  // 转换为数字排序
SORT_STRING  // 转换为文本排序
SORT_ASC     // 升序
SORT_DESC    // 降序
示例:
原关联数组:
$data[] = array('volume' => 'id100343', 'weight' => '4');
$data[] = array('volume' => 'id100212', 'weight' => '1');
$data[] = array('volume' => 'id104104', 'weight' => '10');
var_dump($data);

按照weight进行排序(数字方式SORT_NUMERIC):
array_multisort(array_column($data, 'weight'),SORT_NUMERIC, SORT_ASC, $data); 

输出结果:
array(3) {
[0]=>
array(2) {
["volume"]=>
string(8) "id100212"
["weight"]=>
string(1) "1"
}
[1]=>
array(2) {
["volume"]=>
string(8) "id100343"
["weight"]=>
string(1) "4"
}
[2]=>
array(2) {
["volume"]=>
string(8) "id104104"
["weight"]=>
string(2) "10"
}
}
按照weight进行排序(文本方式SORT_STRING):
array_multisort(array_column($data, 'weight'),SORT_STRING, SORT_ASC, $data); 
array(3) {
[0]=>
array(2) {
["volume"]=>
string(8) "id100212"
["weight"]=>
string(1) "1"
}
[1]=>
array(2) {
["volume"]=>
string(8) "id104104"
["weight"]=>
string(2) "10"
}
[2]=>
array(2) {
["volume"]=>
string(8) "id100343"
["weight"]=>
string(1) "4"
}
}
需要注意10作为数字和文本的区别。

array_multisort 对关联数组进行排序的问题 PHP的更多相关文章

  1. PHP关联数组教程

    PHP 数组 关联数组 什么是数组?在使用 PHP 进行开发的过程中,或早或晚,您会需要创建许多相似的变量.无需很多相似的变量,你可以把数据作为元素存储在数组中.数组中的元素都有自己的 ID,因此可以 ...

  2. PHP array_multisort—对多个数组或多维数组进行排序

    PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序. 关联(string)键名保持不变,但数字键名会被重新索引. 输入数组被当成一个表的列并以 ...

  3. array_multisort—对多个数组或多维数组进行排序

    From: http://www.cnblogs.com/lwbqqyumidi/archive/2013/01/31/2887188.html PHP中array_multisort可以用来一次对多 ...

  4. PHP数组函数 array_multisort() ----对多个数组或多维数组进行排序

    PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序. 关联(string)键名保持不变,但数字键名会被重新索引. 输入数组被当成一个表的列并以 ...

  5. php array_multisort函数实现按某一字段对二维数组进行排序

    在工作中碰到一个页面如表格似的展示多条数据,要求根据其中的修改时间对数据进行排序, 数据格式类似于 $a = array( 0=>array( editTime=>'' addTime=& ...

  6. array_multisort函数,以及多维数组下排序的应用,并与usort函数对比

    以前比较少用这个函数,大部分自己接触的业务里,处理稍微大一些的数组的时候几乎都是从db里取出来的,在db里就order by了. 最近倒是用了次,这个函数用来排序很强大,有点类似于sql中的order ...

  7. linux中利用awk对数组进行排序

    数组 在排序前需要对数组有所了解,数组是用于存储一系列值得变量,这些值之间通常是由联系的,可通过索引来访问数组的值,索引需要用括号括起来,基本格式如下: array[index]=value awk数 ...

  8. JS 索引数组、关联数组和静态数组、动态数组

    JS 索引数组.关联数组和静态数组.动态数组 数组分类: 1.从数组的下标分为索引数组.关联数组 var ary1 = [1,3,5,8]; //按索引去取数组元素,从0开始(当然某些语言实现从1开始 ...

  9. php 根据指定的键对多维数组进行排序

    根据指定的键对多维数组排序,可以按照多个键排序 我们通常有一些多维数组需要排序: $guys = array( array( 'name' => 'jake', 'score' => 80 ...

随机推荐

  1. java实现文字转语音功能(仅Windows)

    一.pom.xml引入jar包依赖 <!-- https://mvnrepository.com/artifact/com.jacob/jacob 文字转语音 --> <depend ...

  2. Cisco AP-AP重置操作

    Resetting to Default Settings Using the MODE Button/spanFollow these steps to reset the access point ...

  3. PW数据库ER图

  4. Update(Stage4):sparksql:第1节 SparkSQL_使用场景_优化器_Dataset & 第2节 SparkSQL读写_hive_mysql_案例

    目标 SparkSQL 是什么 SparkSQL 如何使用 Table of Contents 1. SparkSQL 是什么 1.1. SparkSQL 的出现契机 1.2. SparkSQL 的适 ...

  5. [ DLPytorch ] 注意力机制&机器翻译

    MachineTranslation 实现过程 rstrip():删除 string 字符串末尾的指定字符(默认为空格). 语法:str.rstrip([chars]) 参数:chars -- 指定删 ...

  6. mybatis 无效字符

    只想说 是真的坑啊!!!!!sql就是对 但就是报错无效字符..... 一.sql后有 “:”,我觉得这个应该坑了很多人了 二.标签后有类似于空格的东西(我也不知道是tab还是空格,反正删完就对了) ...

  7. 安装scikit-learn

    首先到官网下载安装 python ,之后下载setuptools 进行安装. 'python' 不是内部或外部命令  可运行 set PATH=%PATH%;C:\Python34 安装完成之后,运行 ...

  8. 人物 - 安迪·葛洛夫,Andrew Stephen Grove,Andy Grove

    安德鲁·史蒂芬·格罗夫英语:Andrew Stephen Grove,昵称安迪·格罗夫(Andy Grove) 1. 前Intel的CEO 2. 1985 年将英特尔带入计算机处理器市场,帮助Inte ...

  9. hadoop程序理解

    1.利用hadoop的API写程序 驱动程序中利用hadoop的API,获取配置,默认会根据HADOOP_HOME环境变量指定的HADOOP主目录下/etc/hadoop加载配置文件 2.启动利用 - ...

  10. 吴裕雄--天生自然ORACLE数据库学习笔记:用户管理与权限分配

    create user mr identified by mrsoft default tablespace users temporary tablespace temp; create user ...