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 相关文章推荐
通过ICQ网关发送手机短信的PHP源程序
Oct 09 PHP
CodeIgniter基本配置详细介绍
Nov 12 PHP
php实现的一个简单json rpc框架实例
Mar 30 PHP
php实现二进制和文本相互转换的方法
Apr 18 PHP
php pdo oracle中文乱码的快速解决方法
May 16 PHP
ZendFramework框架实现连接两个或多个数据库的方法
Dec 08 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
简单实现php上传文件功能
Sep 21 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
Apr 09 PHP
php从数据库读取数据,并以json格式返回数据的方法
Aug 21 PHP
php数组和链表的区别总结
Sep 20 PHP
ThinkPHP5分页paginate代码实例解析
Nov 10 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
《雄兵连》系列首部大电影《烈阳天道》:可能是因为期望值太高了
2020/08/18 国漫
用php或asp创建网页桌面快捷方式的代码
2010/03/23 PHP
thinkphp实现图片上传功能分享
2014/03/04 PHP
php实现TCP端口检测的方法
2015/04/01 PHP
PHP 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
PHP面向对象程序设计类的定义与用法简单示例
2016/12/27 PHP
PHP join()函数用法与实例讲解
2019/03/11 PHP
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
display和visibility的区别示例介绍
2014/02/26 Javascript
javascript实现base64 md5 sha1 密码加密
2015/09/09 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
详解js中==与===的区别
2017/01/08 Javascript
详解nodejs express下使用redis管理session
2017/04/24 NodeJs
JavaScript基于面向对象实现的猜拳游戏
2018/01/03 Javascript
你点的 ES6一些小技巧,请查收
2018/04/25 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
[01:21:07]EG vs Liquid 2018国际邀请赛淘汰赛BO3 第一场 8.25
2018/08/29 DOTA
用Python编写一个国际象棋AI程序
2014/11/28 Python
Python结巴中文分词工具使用过程中遇到的问题及解决方法
2017/04/15 Python
Python字典及字典基本操作方法详解
2018/01/30 Python
Python 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)
2018/03/19 Python
PyQt5实现拖放功能
2018/04/25 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
Pandas读取MySQL数据到DataFrame的方法
2018/07/25 Python
详解配置Django的Celery异步之路踩坑
2018/11/25 Python
在python tkinter中Canvas实现进度条显示的方法
2019/06/14 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
关于iframe跨域使用postMessage的实现
2019/10/29 HTML / CSS
阿玛瑞酒店中文官方网站:Amari.com
2018/02/13 全球购物
巴西Bo.Bô官方在线商店:经营奢侈品时尚业务
2020/03/16 全球购物
会计员岗位职责
2014/03/15 职场文书
纪律教育学习心得体会
2014/09/02 职场文书
单位委托书格式范本
2014/09/29 职场文书
2016高考寄语或鼓励的话语
2015/12/04 职场文书
javascript实现计算器功能详解流程
2021/11/01 Javascript