在PHParray_multisort()函数的使用说明
功能array_multisort(bool数组arr混合,精=美元sort_asc {混合,精= sort_regular美元,美元} } }混合…)参数描述:函数排序多维数组或多维数组
第一个参数是一个数组,接下来的每个参数可能是一个数组,或者下面是一个排序顺序标志。
sort_asc违约,升序排列
降序sort_desc -
然后,您可以指定排序的类型。
sort_regular违约。在一个固定的顺序安排每个项目。
sort_numeric安排每个项目在数字顺序。
sort_string安排每个项目按字母顺序排列的。
实例代码
复制代码代码如下所示:
$ arr1 =阵列(10',11, 100, 100,a);
$ arr2 =阵列(1, 2, 3,2,5);
array_multisort($ ARR1 arr2美元);
结果如下:
前美元
数组({ 0 } = 10 { 1 } { > { 2 } = 11 { 3 } = 100 { 4 } = 100)
#和'10'in 11, 100, 100转换为10的整数倍,低于其他三
10的#作为一个字符串相比,'1'ascii编码的第一个字符是小于49的(ASCII码= 97),所以10'for最小元素
# 'a'is与其他三个数字相比,转换为整数0,小于其他三个数
$ arr2
数组({ 0 } = 1 { 1 } > 5 { 2 } = 2 { 3 } = 2 { 4 } = 3)
# arr2美元美元的'10'corresponding到位置1要素arr1元素,所以在{ 0 }的位置
# $ arr1 { 2 } = 100,$ arr1 { 3 } = 100分别对应3美元arr2元,2'。超过3年的,所以用下标对应的2美元的前{ 2 } = > 100分类
3、用下标对应的3美元的前{ 3 } = > 100排序4
总结
1。排序中数组元素的数目是一致的。
2。将位置对应的数组元素排序为10=> 1, 11 > 2
3后面的数组。按前阵的顺序进行排序。
4面阵。将后面的数组与相同的元素进行比较。
array_multisort排序多个数组或多维数组
解释
布尔array_multisort(阵列AR1美元美元美元混合,混合参数,数组…{……})
成功时返回真实,或返回false。当失败
array_multisort()可以一次多数组排序,或基于某一维或多维多维数组排序。
关联(字符串)键保持不变,但数字键将重新索引。
输入数组被视为表的列并按行排序——这类似于SQL的BY子句的函数。第一个数组是要排序的主数组。数组中的行(值)按下一个输入数组中相应值的大小排序,如行(值)相同。
这个函数的参数结构有点不寻常,但它非常灵活。第一个参数必须是数组。下一个参数可以是数组或下面列出的排序符号。
排序命令标志:
排名的顺序sort_asc -
降序sort_desc阶
排序类型标志:
sort_regular比较项目按常规方法
根据项目sort_numeric数值比较
sort_string比较项目通过字符串
两个类似症状不能在每个数组中指定。指定的排序标志后每个阵列的有效期仅为数组的默认值sort_asc和sort_regular之前。
# 1订购多个阵列
复制代码代码如下所示:
< PHP
$ AR1 =阵列(10
AR2 =美元阵列(1, 3,2
array_multisort($美元AR1,AR2);
var_dump($ AR1);
var_dump($ AR2);
>
在这个例子中进行排序后,第一个数组将包含10 第二个数组将包含1, 1,2 第二个数组中的项顺序与第一个数组中相应的项(100和100)相同。
复制代码代码如下所示:
数组(4){
{ 0(= 2)10
{ 1 } > String(1)
{ 2 } = int(100)
{ 3 } = int(100)
}
数组(4){
{ 0 } = int(1)
{ 1 } = int(1)
{ 2(= 1)2
{ 3 } = int(3)
}
# 2多维数组排序
复制代码代码如下所示:
< PHP
$ =数组(10()10
array_multisort($ AR { 0 },sort_asc,sort_string,
$ AR { 1 },sort_numeric,sort_desc);
>
在这种情况下,在排序之后,第一个数组将包含10100100个(作为字符串的升序),第二个数组将包含1, 3, 2和1作为数值排序。
# 3分类多维数组
复制代码代码如下所示:
< PHP
$ =数组(
数组(10
数组(1, 2,2
);
array_multisort($ AR { 0 },sort_asc,sort_string,
$ AR { 1 },sort_numeric,sort_desc);
var_dump($ AR);
>
在这个例子中,在排序之后,第一个数组将变成 10 第二个数组将包含1, 3,2
复制代码代码如下所示:
数组(2){
{ 0 } = >阵列(5){
{ 0(= 2)10
{ 1 } = int(100)
{ 2 } = int(100)
{ 3 } = int(11)
{ 4 } = >字符串(1)
}
{ 1个数组(5){
{ 0 } = int(1)
{ 1 } = int(3)
{ 2(= 1)2
{ 3 } = int(2)
{ 4 } = int(1)
}
}
# 4种数据库的结果
在这个示例中,数据数组中的每个元素表示表中的一行。这是数据库记录的典型数据集。
示例中的数据如下所示:
卷版|
------- + --------
67 | 2
86 | 1
85 | 6
98 | 2
86 | 6
67 | 7
数据都存储在一个数组的数据。这通常是从数据库中一个循环的结果,如mysql_fetch_assoc()。
< PHP
{ } = $数据阵列(= 67,'edition ' = 2);
{ } = $数据阵列(= 86,'edition ' = 1);
{ } = $数据阵列(= 85,'edition ' = 6);
{ } = $数据阵列(= 98,'edition ' = 2);
{ } = $数据阵列(= 86,'edition ' = 6);
{ } = $数据阵列(= 67,'edition ' = 7);
>
在本例中,卷将按顺序下降,版本按升序排列。
现在有一个数组,包含的行,但array_multisort()需要一个数组包含列,因此下面的代码是用来获取列,再排序。
< PHP
获取列的列表
foreach(美元美元美元关键=数据行){
{ } =体积美元美元美元关键行{};
$版{ $关键} = { } $行'edition;
}
根据音量降序排列的数据,按升序排列。
$ data作为最后一个参数,按万能键排序
array_multisort(合卷,sort_desc,合版,sort_asc,$data);
>
数据集是现在开始,结果如下:
卷版|
------- + --------
98 | 2
86 | 1
86 | 6
85 | 6
67 | 2
67 | 7
5例#不区分情况的信访案件
两sort_string和sort_regular小,小写字母和大写字母,小写字母,将放置在。
要执行不区分大小写的排序,您需要在小写字母的原始数组中进行排序。
复制代码代码如下所示:
< PHP
$array =阵列('alpha ','atomic,Β,银行);
array_lowercase美元= array_map('strtolower,数组);
array_multisort(array_lowercase美元,sort_asc,sort_string,数组);
print_r(数组);
>
上述例程将输出:
阵列
(
{ 0 } =α
{ 1 }原子
{ 2 } =银行
{ 3 }
)
这个函数非常有用。为了帮助理解,请看下面的例子。
例如#排名6
复制代码代码如下所示:
< PHP
数组=(数组= 60, 70(70, 95, 70)),
名称=数组(张三
赵柳
array_multisort($级{得分},sort_numeric,sort_desc,
将作为从高到低排序的值。
$级{名字},sort_string,sort_asc);
将名称作为字符串升序排序。
var_dump(元级);
>
上述例程将输出:
数组(2){
{得分}
数组(5){
{ 0 } >
int(95)
{ 1 } >
字符串(2)70
{ 2 } >
浮子(70)
{ 3 } >
int(70)
{ 4 } >
int(60)
}
{名称}
数组(5){
{ 0 } >
字符串(5)
{ 1 } >
字符串(6)刘淇
{ 2 } >
字符串(7)王吴
{ 3 } >
字符串(9)张三
{ 4 } >
字符串(8)
}
}
在这种情况下,结果包含数组等级(分数)按分数从高到低排序,得分相同的名称(姓名)按照从大到小的顺序排序。后Li Si的95分排名第一,赵六,60点,第五没有异议。张三、Wang Wu和刘琦都70点,通过安排的名字的字母顺序排序,刘之前和之后的王某在张某到底。为了区别,三70点表示的整数,浮点数字和字符串,可以在程序的输出清晰可见。