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 相关文章推荐
一个简单的MySQL数据浏览器
Oct 09 PHP
使用php 获取时间今天明天昨天时间戳的详解
Jun 20 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
浅谈PHP的反射机制
Dec 15 PHP
php cookie用户登录的详解及实例代码
Jan 03 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
微信开发之获取JSAPI TICKET
Jul 07 PHP
PHP中使用jQuery+Ajax实现分页查询多功能操作(示例讲解)
Sep 17 PHP
PHP多个图片压缩成ZIP的方法
Aug 18 PHP
PHP实现非阻塞模式的方法分析
Jul 26 PHP
PHP异常类及异常处理操作实例详解
Dec 19 PHP
php的instanceof和判断闭包Closure操作示例
Jan 26 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自动加载方式集合
2016/04/04 PHP
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
js arguments对象应用介绍
2012/11/28 Javascript
图片无缝滚动代码(向左/向下/向上)
2013/04/10 Javascript
JQuery设置获取下拉菜单某个选项的值(比较全)
2014/08/05 Javascript
基于jQuery实现表单提交验证
2014/11/24 Javascript
jQuery实现将页面上HTML标签换成另外标签的方法
2015/06/09 Javascript
javascript基础语法学习笔记
2016/01/04 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
使用Xcache缓存器加速PHP网站的配置方法
2017/04/22 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
jquery easyui如何实现格式化列
2017/07/30 jQuery
关于Vue Webpack2单元测试示例详解
2017/08/14 Javascript
详解如何制作并发布一个vue的组件的npm包
2018/11/10 Javascript
Node.js动手撸一个静态资源服务器的方法
2019/03/09 Javascript
Vue-Cli 3.0 中配置高德地图的两种方式
2019/06/19 Javascript
小程序跨页面交互的作用与方法详解
2020/01/07 Javascript
JS数组方法push()、pop()用法实例分析
2020/01/18 Javascript
Python中异常重试的解决方案详解
2017/05/05 Python
hmac模块生成加入了密钥的消息摘要详解
2018/01/11 Python
Centos部署django服务nginx+uwsgi的方法
2019/01/02 Python
Python 旋转打印各种矩形的方法
2019/07/09 Python
在python中用print()输出多个格式化参数的方法
2019/07/16 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
Python3列表List入门知识附实例
2020/02/09 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
7 For All Mankind官网:美国加州洛杉矶的高级牛仔服装品牌
2018/12/20 全球购物
人事助理岗位职责
2013/11/18 职场文书
求职简历自我评价范例
2014/03/12 职场文书
暑期培训班招生方案
2014/08/26 职场文书
保密工作整改情况汇报
2014/11/06 职场文书
国庆节慰问信
2015/02/15 职场文书
Oracle设置DB、监听和EM开机启动的方法
2021/04/25 Oracle
golang 实用库gotable的具体使用
2021/07/01 Golang
《仙剑客栈2》第一弹正式宣传片公开 年内发售
2022/04/07 其他游戏