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&amp;&amp;mysql)五
Oct 09 PHP
PHP 5.3.0 安装分析心得
Aug 07 PHP
joomla jce editor 解决上传中文名文件失败问题
Jun 09 PHP
Android ProgressBar进度条和ProgressDialog进度框的展示DEMO
Jun 19 PHP
php模拟post提交数据的方法
Feb 12 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
yii分页组件用法实例分析
Dec 28 PHP
PHP实现动态执行代码的方法
Mar 25 PHP
php错误日志简单配置方法
Jul 11 PHP
PHP编辑器PhpStrom运行缓慢问题
Feb 21 PHP
php实现对文件压缩简单的方法
Sep 29 PHP
HTTP头隐藏PHP版本号实现过程解析
Dec 09 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
历史证明,懒惰才是推动科学发展技术进步的动力
2021/03/02 无线电
smarty巧妙处理iframe中内容页的代码
2012/03/07 PHP
thinkphp自定义权限管理之名称判断方法
2017/04/01 PHP
Laravel框架源码解析之入口文件原理分析
2020/05/14 PHP
基于mootools插件实现遮罩层新手引导
2012/05/24 Javascript
jQuery中实现动画效果的基本操作介绍
2013/04/16 Javascript
使用Chart.js图表库制作漂亮的响应式表单
2015/10/28 Javascript
javascript中的altKey 和 Event属性大全
2015/11/06 Javascript
js和jquery分别验证单选框、复选框、下拉框
2015/12/17 Javascript
基于Javascript实现倒计时功能
2016/02/22 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
超全面的JavaScript开发规范(推荐)
2017/01/21 Javascript
loading动画特效小结
2017/01/22 Javascript
基于JQuery的购物车添加删除以及结算功能示例
2017/03/08 Javascript
JavaScript编写棋盘覆盖代码详解
2017/08/28 Javascript
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
在Windows系统上搭建Nginx+Python+MySQL环境的教程
2015/12/25 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
python实现可变变量名方法详解
2019/07/01 Python
Python异常原理及异常捕捉实现过程解析
2020/03/25 Python
Django 设置admin后台表和App(应用)为中文名的操作方法
2020/05/10 Python
阿迪达斯芬兰官方网站:adidas芬兰
2017/01/30 全球购物
世界上最大的糖果店:Dylan’s Candy Bar
2017/11/07 全球购物
毕业生医学检验求职信
2013/10/16 职场文书
狼和鹿教学反思
2014/02/05 职场文书
采购部经理岗位职责
2014/02/10 职场文书
个人安全生产承诺书
2014/05/22 职场文书
乔布斯斯坦福大学演讲稿
2014/05/23 职场文书
教育合作协议范本
2014/10/17 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
中秋节随笔
2015/08/15 职场文书
谢师宴家长答谢词
2015/09/30 职场文书
python基础之爬虫入门
2021/05/10 Python
阿里云日志过滤器配置日志服务
2022/04/09 Servers