PHP数组函数array_multisort()用法实例分析


Posted in PHP onApril 02, 2016

本文实例分析了PHP数组函数array_multisort()用法。分享给大家供大家参考,具体如下:

有时候我们需要对二维数组的某个键的值进行排序,这里就是讨论这个问题。我们可以使用array_multisort()这个函数。array_multisort() 函数对多个数组或多维数组进行排序。

参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。

第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:

SORT_ASC - 默认,按升序排列。(A-Z)
SORT_DESC - 按降序排列。(Z-A)

随后可以指定排序的类型:

SORT_REGULAR - 默认。将每一项按常规顺序排列。
SORT_NUMERIC - 将每一项按数字顺序排列。
SORT_STRING - 将每一项按字母顺序排列。

语法:array_multisort(array1,sorting order,sorting type,array2,array3...)

array1:必需。规定输入的数组。
sorting order:可选。规定排列顺序。可能的值是 SORT_ASC 和 SORT_DESC。
sorting type:可选。规定排序类型。可能的值是SORT_REGULAR、SORT_NUMERIC和SORT_STRING。
array2:可选。规定输入的数组。
array3:可选。规定输入的数组。

字符串键名将被保留,但是数字键将被重新索引,从 0 开始,并以 1 递增。可以在每个数组后设置排序顺序和排序类型。如果没有设置,每个数组参数会使用默认值。

下面是一个例子:

<?php
 $arr = '';
 echo '二维数组如下:'.'<br / >';
 for($i=0; $i<=5; $i++)
 {
 $arr[$i]['val'] = mt_rand(1, 100);
 $arr[$i]['num'] = mt_rand(1, 100);
 }
 echo '<pre>';
 print_r($arr);
 echo '</pre>';
 echo '从二维数组中抽出键为val,单独成另一个数组:'.'<br / >';
 foreach ($arr as $key => $row) 
 {
   $vals[$key] = $row['val'];
    $nums[$key] = $row['num'];
 }
 echo '<pre>';
 print_r($vals);
 echo '</pre>';
 echo '对其进行排序:'.'<br / >';
 array_multisort($vals, SORT_ASC, $arr);
 echo '<pre>';
 print_r($vals);
 echo '</pre>';
?>

运行结果:

二维数组如下:
Array
(
  [0] => Array
    (
      [val] => 46
      [num] => 49
    )
  [1] => Array
    (
      [val] => 8
      [num] => 24
    )
  [2] => Array
    (
      [val] => 37
      [num] => 3
    )
  [3] => Array
    (
      [val] => 32
      [num] => 35
    )
  [4] => Array
    (
      [val] => 19
      [num] => 38
    )
  [5] => Array
    (
      [val] => 30
      [num] => 37
    )
)

 
从二维数组中抽出键为val,单独成另一个数组:

Array
(
  [0] => 46
  [1] => 8
  [2] => 37
  [3] => 32
  [4] => 19
  [5] => 30
)

对其进行排序:

Array
(
  [0] => 8
  [1] => 19
  [2] => 30
  [3] => 32
  [4] => 37
  [5] => 46
)

这样我们将得到一个按val升序排序的二维数组。

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
PHP利用COM对象访问SQLServer、Access
Oct 09 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
Jun 29 PHP
php中利用str_pad函数生成数字递增形式的产品编号
Sep 30 PHP
PHP中array_slice函数用法实例详解
Nov 25 PHP
分享php分页的功能模块
Jun 16 PHP
php根据年月获取当月天数及日期数组的方法
Nov 30 PHP
PHP CURL采集百度搜寻结果图片不显示问题的解决方法
Feb 03 PHP
PHP实现的简单对称加密与解密方法实例小结
Aug 28 PHP
php记录搜索引擎爬行记录的实现代码
Mar 02 PHP
PHP 二维array转换json的实例讲解
Aug 21 PHP
php实现数字补零的方法总结
Sep 12 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
Oct 18 PHP
PHP使用http_build_query()构造URL字符串的方法
Apr 02 #PHP
PHP递归实现层级树状展开
Apr 01 #PHP
详解PHP的Yii框架中扩展的安装与使用
Apr 01 #PHP
PHP使用SOAP扩展实现WebService的方法
Apr 01 #PHP
PHP全局变量与超级全局变量区别分析
Apr 01 #PHP
PHP计算数组中值的和与乘积的方法(array_sum与array_product函数)
Apr 01 #PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 #PHP
You might like
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
PHP filter_var() 函数 Filter 函数
2012/04/25 PHP
查找mysql字段中固定字符串并替换的几个方法
2012/09/23 PHP
php删除文件夹及其文件夹下所有文件的函数代码
2013/01/23 PHP
PHP高级编程实例:编写守护进程
2014/09/02 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
检测是否已安装 .NET Framework 3.5的js脚本
2009/02/14 Javascript
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
跨浏览器的 mouseenter mouseleave 以及 compareDocumentPosition的使用说明
2010/05/04 Javascript
ExtJS 入门
2010/10/29 Javascript
javascript中callee与caller的用法和应用场景
2010/12/08 Javascript
jquery获取tr并更改tr内容示例代码
2014/02/13 Javascript
javascript 动态修改css样式方法汇总(四种方法)
2015/08/27 Javascript
JS实现仿苹果底部任务栏菜单效果代码
2015/08/28 Javascript
Node.js对MongoDB数据库实现模糊查询的方法
2017/05/03 Javascript
详解tween.js的使用教程
2017/09/14 Javascript
nodejs超出最大的调用栈错误问题
2017/12/27 NodeJs
浅谈Angular 观察者模式理解
2018/11/01 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
JS实现轮播图效果
2020/01/11 Javascript
微信公众号中的JSSDK接入及invalid signature等常见错误问题分析(全面解析)
2020/04/11 Javascript
浅谈JavaScript中的“!!”作用
2020/08/03 Javascript
nodejs中的异步编程知识点详解
2021/01/17 NodeJs
利用python获得时间的实例说明
2013/03/25 Python
python正则表达式判断字符串是否是全部小写示例
2013/12/25 Python
python实现字典(dict)和字符串(string)的相互转换方法
2017/03/01 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
Django中create和save方法的不同
2019/08/13 Python
Python使用Turtle库绘制一棵西兰花
2019/11/23 Python
Python面向对象程序设计之私有变量,私有方法原理与用法分析
2020/03/23 Python
汉语言文学毕业生求职信
2013/10/01 职场文书
群众路线教育实践活动批评与自我批评
2014/09/15 职场文书
2015年考研复习计划
2015/01/19 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
Java基础之this关键字的使用
2021/06/30 Java/Android