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 相关文章推荐
桌面中心(一)创建数据库
Oct 09 PHP
php下实现伪 url 的超简单方法[转]
Sep 24 PHP
php 上一篇,下一篇文章实现代码与原理说明
May 09 PHP
php Ubb代码编辑器函数代码
Jul 05 PHP
基于header的一些常用指令详解
Jun 06 PHP
探讨Hessian在PHP中的使用分析
Jun 13 PHP
PHP中JSON的应用技巧
Oct 10 PHP
PHP生成word文档的三种实现方式
Nov 14 PHP
php可变长参数处理函数详解
Feb 22 PHP
PHP编程实现多维数组按照某个键值排序的方法小结【2种方法】
Apr 27 PHP
PHP实现的回溯算法示例
Aug 15 PHP
thinkphp5.0整合phpsocketio完整攻略(绕坑)
Oct 12 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学习之数据类型之间的转换代码
2011/05/29 PHP
析构函数与php的垃圾回收机制详解
2013/10/28 PHP
PHP基于MySQL数据库实现对象持久层的方法
2015/06/17 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
PHP页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
限制文本字节数js代码
2007/03/06 Javascript
javascript cookie解码函数(兼容ff)
2008/03/17 Javascript
validator验证控件使用代码
2010/11/23 Javascript
zShowBox 图片放大展示jquery版 兼容性
2011/09/24 Javascript
Javascript中的数据类型之旅
2015/10/18 Javascript
JavaScript6 let 新语法优势介绍
2016/07/15 Javascript
详解React native全局变量的使用(跨组件的通信)
2017/09/07 Javascript
使用express搭建一个简单的查询服务器的方法
2018/02/09 Javascript
jQuery实现的淡入淡出与滑入滑出效果示例
2018/04/18 jQuery
vue-router 实现导航守卫(路由卫士)的实例代码
2018/09/02 Javascript
微信小程序解除10个请求并发限制
2018/12/18 Javascript
Vue加载json文件的方法简单示例
2019/01/28 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
node脚手架搭建服务器实现token验证的方法
2021/01/20 Javascript
python 远程统计文件代码分享
2015/05/14 Python
Python的Flask框架及Nginx实现静态文件访问限制功能
2016/06/27 Python
Python第三方库xlrd/xlwt的安装与读写Excel表格
2017/01/21 Python
pandas 选择某几列的方法
2018/07/03 Python
Python实现矩阵相乘的三种方法小结
2018/07/26 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
Python使用Matlab命令过程解析
2020/06/04 Python
基于Html5实现的语音搜索功能
2019/05/13 HTML / CSS
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
体育专业个人的求职信范文
2013/09/21 职场文书
《鹬蚌相争》教学反思
2014/04/22 职场文书
计算机实训报告总结
2014/11/05 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
opencv检测动态物体的实现
2021/07/21 Python
Redisson实现Redis分布式锁的几种方式
2021/08/07 Redis