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中的实现trim函数代码
Mar 19 PHP
sae使用smarty模板的方法
Dec 17 PHP
php5.3以后的版本连接sqlserver2000的方法
Jul 28 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
thinkphp3.0输出重复两次的解决方法
Dec 19 PHP
php读取csv文件并输出的方法
Mar 14 PHP
php5.4以上版本GBK编码下htmlspecialchars输出为空问题解决方法汇总
Apr 03 PHP
php算法实例分享
Jul 14 PHP
学习php设计模式 php实现观察者模式(Observer)
Dec 09 PHP
thinkPHP5.0框架开发规范简介
Mar 25 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
Feb 23 PHP
php实现银联商务公众号+服务窗支付的示例代码
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
数据库的日期格式转换
2006/10/09 PHP
PHP中,文件上传
2006/12/06 PHP
PHP 遍历文件实现代码
2011/05/04 PHP
php中fsockopen用法实例
2015/01/05 PHP
THINKPHP内容分页代码分享
2015/01/14 PHP
帝国cms常用标签汇总
2015/07/06 PHP
thinkPHP引入类的方法详解
2016/12/08 PHP
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
js时间戳格式化成日期格式的多种方法
2013/11/11 Javascript
js检测网络是否具体连接功能的代码
2014/05/23 Javascript
jquery模拟LCD 时钟的html文件源代码
2014/06/16 Javascript
浅谈Javascript数组(推荐)
2016/05/17 Javascript
手机Web APP如何实现分享多平台功能
2016/08/19 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
2016/10/24 Javascript
Javascript之图片的延迟加载的实例详解
2017/07/24 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
使用JavaScript破解web
2018/09/28 Javascript
vue实现日历备忘录功能
2020/09/24 Javascript
es6中使用map简化复杂条件判断操作实例详解
2020/02/19 Javascript
vue-cli3使用mock数据的方法分析
2020/03/16 Javascript
[04:50]DOTA2亚洲邀请赛小组赛第四日 TOP10精彩集锦
2015/02/02 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
python实现马耳可夫链算法实例分析
2015/05/20 Python
详解Python开发中如何使用Hook技巧
2017/11/01 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
Django 项目重命名的实现步骤解析
2019/08/14 Python
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
高中生学习生活的自我评价
2013/10/09 职场文书
金融专业推荐信
2013/11/14 职场文书
采购部经理岗位职责
2014/02/10 职场文书
宿舍违规用电检讨书
2014/02/16 职场文书
行政助理工作职责范本
2014/03/04 职场文书
中秋节随笔
2015/08/15 职场文书
护士旷工检讨书
2015/08/15 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
使用php的mail()函数实现发送邮件功能
2021/06/03 PHP