array_multisort 的详细使用方法
1.如果第一个数组有相同的元素,那么后面对应位置的元素位置如何排序呢,请看下列代码
$a1=array("Dog","Dog","Cat");
$a2=array("Aluto","Bido","Cissy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);//如果第一个数组中有相同的值,
//那么在第二个数按第一个数组排序时,对应位置在元素如何排序?默认是ASC,当然也可以指定排序的方法,如例中,对应位置为倒序排
print_r($a1);
print_r($a2);
2.使用二数组中的某字段进行排序代码:
$arrUsers = array(
array(
'id' => 1,
'name' => '张三',
'age' => 25,
),
array(
'id' => 2,
'name' => '李四',
'age' => 23,
),
array(
'id' => 3,
'name' => '王五',
'age' => 40,
),
array(
'id' => 4,
'name' => '赵六',
'age' => 31,
),
array(
'id' => 5,
'name' => '黄七',
'age' => 20,
),
);
$sort = array(
'direction' => 'SORT_DESC', //排序顺序标志 SORT_DESC 降序;SORT_ASC 升序
'field' => 'name', //排序字段
);
$arrSort = array();
foreach ($arrUsers AS $uniqid => $row) {
foreach ($row AS $key => $value) {
$arrSort[$key][$uniqid] = $value;
}
}
//var_dump($arrSort);
//exit;
if ($sort['direction']) { array_multisort($arrSort[$sort['field']],'SORT_DESC',$arrUsers); }
var_dump($arrUsers);exit;
定义和用法
array_multisort() 函数返回排序数组。您可以输入一个或多个数组。函数先对第一个数组进行排序,接着是其他数组,如果两个或多个值相同,它将对下一个数组进行排序。
注释:字符串键名将被保留,但是数字键名将被重新索引,从 0 开始,并以 1 递增。
注释:您可以在每个数组后设置排序顺序和排序类型参数。如果没有设置,每个数组参数会使用默认值。
语法
array_multisort(array1,sorting order,sorting type,array2,array3...)
| 参数 | 描述 |
|---|---|
| array1 | 必需。规定数组。 |
| sorting order |
可选。规定排列顺序。可能的值:
|
| sorting type |
可选。规定排序类型。可能的值:
|
| array2 | 可选。规定数组。 |
| array3 | 可选。规定数组。 |
说明
array_multisort() 函数对多个数组或多维数组进行排序。
参数中的数组被当成一个表的列并以行来进行排序 - 这类似 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话,就会按照下一个输入数组中相应值的大小进行排序,依此类推。
第一个参数是数组,随后的每一个参数可能是数组,也可能是下面的排序顺序标志(排序标志用于更改默认的排列顺序)之一:
- SORT_ASC - 默认,按升序排列。(A-Z)
- SORT_DESC - 按降序排列。(Z-A)
随后可以指定排序的类型:
- SORT_REGULAR - 默认。将每一项按常规顺序排列。
- SORT_NUMERIC - 将每一项按数字顺序排列。
- SORT_STRING - 将每一项按字母顺序排列。
技术细节
| 返回值: | 如果成功则返回 TRUE,如果失败则返回 FALSE。 |
| PHP 版本: | 4+ |
| 更新日志: |
排序类型 SORT_NATURAL 和 SORT_FLAG_CASE 是在 PHP 5.4 中新增的。 排序类型 SORT_LOCALE_STRING 是在 PHP 5.3 中新增的。 |
更多实例
例子 1
返回一个升序排列的数组:
<?php
$a1=array("Dog","Cat");
$a2=array("Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);
?>
例子 2
当两个值相同时如何排序:
<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,$a2);
print_r($a1);
print_r($a2);
?>
例子 3
使用排序参数:
<?php
$a1=array("Dog","Dog","Cat");
$a2=array("Pluto","Fido","Missy");
array_multisort($a1,SORT_ASC,$a2,SORT_DESC);
print_r($a1);
print_r($a2);
?>
例子 4
合并两个数组,并按数字降序排列:
<?php
$a1=array(1,30,15,7,25);
$a2=array(4,30,20,41,66);
$num=array_merge($a1,$a2);
array_multisort($num,SORT_DESC,SORT_NUMERIC);
print_r($num);
?>
array_multisort 的详细使用方法的更多相关文章
- PL/SQL Developer 连接Oracle数据库详细配置方法
PL/SQL Developer 连接Oracle数据库详细配置方法 近段时间很多网友提出监听配置相关问题,客户终端(Client)无法连接服务器端(Server).本文现对监听配置作一简单介绍,给出 ...
- NUnit详细使用方法
http://www.ltesting.net/ceshi/open/kydycsgj/nunit/ http://nunit.org/index.php?p=download NUnit详细使用方法 ...
- Html Mailto标签详细使用方法
http://www.360doc.com/content/09/0805/14/16915_4684377.shtml Html Mailto标签详细使用方法 Html中mailto标签是一个非常实 ...
- 使用phpExcelReader操作excel提示The filename *.xls is not readable的详细解决方法
使用phpExcelReader操作excel提示The filename *.xls is not readable的详细解决方法 是xls文件有问题,另存为新的xls文件,然后导入就不会有这个问题
- python简介及详细安装方法
1.Python简介 1.1 Python是什么 相信混迹IT界的很多朋友都知道,Python是近年来最火的一个热点,没有之一.从性质上来讲它和我们熟知的C.java.php等没有什么本质的区别,也是 ...
- vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置
vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置 [转载自]tinyle的专栏 [原文链接地址]http://blog.csdn.net/myaccella/ar ...
- 【yumex图形安装双击】【转载】CentOS yum的详细使用方法
CentOS yum的详细使用方法 yum是什么yum = Yellow dog Updater, Modified主要功能是更方便的添加/删除/更新RPM包.它能自动解决包的倚赖性问题.它能便于管理 ...
- Linux下ps命令详解 Linux下ps命令的详细使用方法
http://www.jb51.net/LINUXjishu/56578.html Linux下的ps命令比较常用 Linux下ps命令详解Linux上进程有5种状态:1. 运行(正在运行或在运行队列 ...
- Mysql 死锁的详细分析方法
用数据库的时候,偶尔会出现死锁,针对我们的业务系统,出现死锁的直接结果就是系统卡顿.客户找事儿,所以我们也在想尽全力的消除掉数据库的死锁.出现死锁的时候,如果只是想解锁,用show full proc ...
随机推荐
- JQuery 判断不同浏览器
if($.browser.msie) { //IE浏览器alert("this is msie"); } else if($.browser.safari) ...
- Yii 多个子目录同步登录
---恢复内容开始--- 配置文件中: 1 'components'=>array( 'user'=>array( 'class'=>'CWebUser', 'identityCo ...
- 如何在ashx页面获取Session值
[转] 在一般事务处理页面,可以轻松的得到 Request,Response对象,从而进行相应的操作,如下: HttpRequest Request = context.Request; Http ...
- 浅谈HTTP中Get与Post的区别(转)
Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP ...
- BAT技巧
FOR使用 枚举input.txt里的每一行,执行call :dosth %%i(以换行符为分割,默认是空格) for /f "delims=" %%i in (input.txt ...
- C++Primer 一
1.vertor和数组的区别: 数组的长度固定.而且程序是无法知道一个给定数组的长度,数组没有获取器容量大小的size操作,也不提供puch_back操作在其中自动添加元素 2.数组定义中的类型可以示 ...
- box-shadow
box-shadow:a b c d e; a-水平位置,相对于盒子本身在水平方向的正偏移距离: b-垂直位置: c-模糊距离: d-阴影尺寸,从盒子的边框开始算起的阴影的宽度: e-阴影颜色: f- ...
- mysql 查看数据库、表的基本命令
1:show databases; 查看所有的数据库,等同于select schema_name from information_schema.schemata\G.\G 替换;,以纵向报表的形式输 ...
- CreateFile函数详解
CreateFile函数详解 CreateFile The CreateFile function creates or opens the following objects and returns ...
- Ajax学习重点总结
1.什么是AJAX AJAX=Asynchronous JavaScript and XML(异步的JavaScript和XML). AJAX是在不重新加载整个页面的情况下,后台与服务器交换数据并更新 ...