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 相关文章推荐
程序员编程十条戒律
Jul 09 PHP
UTF8编码内的繁简转换的PHP类
Jul 09 PHP
php 求质素(素数) 的实现代码
Apr 12 PHP
Drupal 添加模块出现莫名其妙的错误的解决方法(往往出现在模块较多时)
Apr 18 PHP
PHP获取php,mysql,apche的版本信息示例代码
Jan 16 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
Yii清理缓存的方法
Jan 06 PHP
总结对比php中的多种序列化
Aug 28 PHP
php版微信公众账号第三方管理工具开发简明教程
Sep 23 PHP
PHP函数rtrim()使用中的怪异现象分析
Feb 24 PHP
PHP yield关键字功能与用法分析
Jan 03 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
PHP投票系统防刷票判断流程分析
2012/02/04 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
2013/12/24 PHP
PHP JSON出错:Cannot use object of type stdClass as array解决方法
2014/08/16 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
JS中prototype关键字的功能介绍及使用示例
2013/07/21 Javascript
点击按钮或链接不跳转只刷新页面的脚本整理
2013/10/22 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
10条建议帮助你创建更好的jQuery插件
2015/05/18 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
微信小程序 后台https域名绑定和免费的https证书申请详解
2016/11/10 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
Angularjs实现搜索关键字高亮显示效果
2017/01/17 Javascript
Node.js获取前端ajax提交的request信息
2017/02/20 Javascript
基于VUE选择上传图片并页面显示(图片可删除)
2017/05/25 Javascript
简述vue中的config配置
2018/01/23 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
在vue中多次调用同一个定义全局变量的实例
2018/09/25 Javascript
深入了解JavaScript 防抖和节流
2019/09/12 Javascript
Vue+element-ui添加自定义右键菜单的方法示例
2020/12/08 Vue.js
HTML中使用python屏蔽一些基本功能的方法
2017/07/07 Python
浅谈Python实现Apriori算法介绍
2017/12/20 Python
pandas数据处理进阶详解
2019/10/11 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
2020/12/01 Python
python在协程中增加任务实例操作
2021/02/28 Python
StubHub墨西哥:购买和出售您的门票
2016/09/17 全球购物
俄语专业毕业生推荐信
2013/10/28 职场文书
通用求职信范文模板分享
2013/12/27 职场文书
张家口市高新区党工委群众路线教育实践活动整改方案
2014/10/25 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
SQL语句中JOIN的用法场景分析
2021/07/25 SQL Server
java中为什么说子类的构造方法默认访问的是父类的无参构造方法
2022/04/13 Java/Android
JS高级程序设计之class继承重点详解
2022/07/07 Javascript
Nginx报404错误的详细解决方法
2022/07/23 Servers