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获取金书网的书名的实现代码
Jun 11 PHP
并发下常见的加锁及锁的PHP具体实现代码
Oct 12 PHP
PHP stream_context_create()作用和用法分析
Mar 29 PHP
php字符串截取的简单方法
Jul 04 PHP
php汉字转拼音的示例
Feb 27 PHP
php获取数组元素中头一个数组元素值的实现方法
Dec 20 PHP
为PHP5.4开启Zend OPCode缓存
Dec 26 PHP
php动态读取数据清除最右边距的方法
Apr 12 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
Mar 23 PHP
php字符串倒叙
Apr 01 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
使用gd库实现php服务端图片裁剪和生成缩略图功能分享
2013/12/25 PHP
php实现curl模拟ftp上传的方法
2015/07/29 PHP
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
js 数值项目的格式化函数代码
2010/05/14 Javascript
使用基于jquery的gamequery插件做JS乒乓球游戏
2011/07/31 Javascript
js 自制滚动条的小例子
2013/03/16 Javascript
JS截取字符串常用方法详细整理
2013/10/28 Javascript
JavaScript中诡异的delete操作符
2015/03/12 Javascript
包含中国城市的javascript对象实例
2015/08/03 Javascript
20分钟轻松创建自己的Bootstrap站点
2016/05/12 Javascript
jq实现左滑显示删除按钮,点击删除实现删除数据功能(推荐)
2016/08/23 Javascript
可输入文字查找ajax下拉框控件 ComBox的实现方法
2016/10/25 Javascript
js闭包用法实例详解
2016/12/13 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
JS排序之冒泡排序详解
2017/04/08 Javascript
vue init webpack myproject构建项目 ip不能访问的解决方法
2018/03/20 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
2019/01/17 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
vue+elementUI实现表单和图片上传及验证功能示例
2019/05/14 Javascript
如何让Nodejs支持H5 History模式(connect-history-api-fallback源码分析)
2019/05/30 NodeJs
JS前端知识点总结之页面加载事件,数组操作,DOM节点操作,循环和分支
2019/07/04 Javascript
[45:25]OG vs EG 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.22
2019/09/05 DOTA
启动targetcli时遇到错误解决办法
2017/10/26 Python
使用PyTorch训练一个图像分类器实例
2020/01/08 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
python爬虫开发之Request模块从安装到详细使用方法与实例全解
2020/03/09 Python
Python3.6 中的pyinstaller安装和使用教程
2020/03/16 Python
浅谈keras保存模型中的save()和save_weights()区别
2020/05/21 Python
Python中SQLite如何使用
2020/05/27 Python
ShellScript面试题一则-ShellScript编程
2014/06/24 面试题
杠杆的科学教学反思
2014/01/10 职场文书
干部现实表现材料
2014/02/13 职场文书
管理岗位竞聘演讲稿
2014/08/18 职场文书
js实现自动锁屏功能
2021/06/02 Javascript
MySQL 时间类型的选择
2021/06/05 MySQL
java实现对Hadoop的操作
2021/07/01 Java/Android