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 相关文章推荐
php5.2.0内存管理改进
Jan 22 PHP
PHP 函数call_user_func和call_user_func_array用法详解
Mar 02 PHP
php定义数组和使用示例(php数组的定义方法)
Mar 29 PHP
Codeigniter生成Excel文档的简单方法
Jun 12 PHP
浅谈使用 PHP 进行手机 APP 开发(API 接口开发)
Aug 11 PHP
ThinkPHP中URL路径访问与模块控制器之间的关系
Aug 23 PHP
php时间戳格式化显示友好的时间函数分享
Oct 21 PHP
php随机抽奖实例分析
Mar 04 PHP
php动态生成缩略图并输出显示的方法
Apr 20 PHP
PHP实现微信网页授权开发教程
Jan 19 PHP
php-fpm开启状态统计的方法详解
Jun 23 PHP
php实现在线考试系统【附源码】
Sep 18 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安装攻略:常见问题解答(一)
2006/10/09 PHP
Yii实现MySQL多数据库和读写分离实例分析
2014/12/03 PHP
刷新PHP缓冲区为你的站点加速
2015/10/10 PHP
PHP模块化安装教程
2016/06/01 PHP
Laravel中10个有用的用法小结
2019/05/06 PHP
php+iframe 实现上传文件功能示例
2020/03/04 PHP
JavaScript游戏之是男人就下100层代码打包
2010/11/08 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
实例解析js中try、catch、finally的执行规则
2017/02/24 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
vue根据值给予不同class的实例
2018/09/29 Javascript
JavaScript原型对象原理与应用分析
2018/12/27 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
详解在Angular4中使用ng2-baidu-map的方法
2019/06/19 Javascript
在Angular项目使用socket.io实现通信的方法
2021/01/05 Javascript
node.js文件的复制、创建文件夹等相关操作
2021/02/05 Javascript
Python3实现连接SQLite数据库的方法
2014/08/23 Python
在主机商的共享服务器上部署Django站点的方法
2015/07/22 Python
python 专题九 Mysql数据库编程基础知识
2017/03/16 Python
python 环境变量和import模块导入方法(详解)
2017/07/11 Python
对python3 中方法各种参数和返回值详解
2018/12/15 Python
Tensorflow读取并输出已保存模型的权重数值方式
2020/01/04 Python
详谈tensorflow gfile文件的用法
2020/02/05 Python
python应用Axes3D绘图(批量梯度下降算法)
2020/03/25 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
HTML5+CSS3实现无插件拖拽上传图片(支持预览与批量)
2017/01/05 HTML / CSS
Html5实现单张、多张图片上传功能
2019/04/28 HTML / CSS
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
Crocs波兰官方商店:女鞋、男鞋、童鞋、洞洞鞋
2019/10/08 全球购物
学习雷锋月活动总结
2014/07/03 职场文书
公司领导班子四风对照检查材料
2014/09/27 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
Python数据类型最全知识总结
2021/05/31 Python
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
Java GUI编程菜单组件实例详解
2022/04/07 Java/Android