刚才看了半天数组排序
分别有:递增排序——sort
递减排序——rsort
数组排序——array_multisort
前两个我相信我应该和大家一样一看就懂,事实也是如此.
可是第三个却看了好久也没有看懂,郁闷 -_-!!!
最后通过反复比较自己修改后的程序的运行结果,终于有些通路了..
请看介绍:
array_multisort
(PHP
4
,
PHP
5
)
array_multisort
--
对多个数组或多维数组进行排序
说明
bool
array_multisort
(
array
ar1 [
,
mixed
arg [
,
mixed
...
[
,
array
...
]]] )
如果成功则返回
TRUE
,失败则返回
FALSE
。
array_multisort
() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联(
string
)键名保持不变,但数字键名会被重新索引。
输入数组被当成一个表的列并以行来排序――这类似于 SQL 的 ORDER BY 子句的功能。第一个数组是要排序的主要数组。数组中的行(值)比较为相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
本函数的参数结构有些不同寻常,但是非常灵活。第一个参数必须是一个数组。接下来的每个参数可以是数组或者是下面列出的排序标志。
排序顺序标志:
SORT_ASC
-
按照上升顺序排序
SORT_DESC
-
按照下降顺序排序
排序类型标志:
SORT_REGULAR
-
将项目按照通常方法比较
SORT_NUMERIC
-
将项目按照数值比较
SORT_STRING
-
将项目按照字符串比较
每个数组之后不能指定两个同类的排序标志。每个数组后指定的排序标志仅对该数组有效
-
在此之前为默认值 SORT_ASC 和 SORT_REGULAR。
以上摘自PHP手册,嘿嘿....
下面请看例子:
<?
php
$ar1
=
array
(
5
=>
"
zero
"
,
1
=>
"
one
"
,
4
=>
"
two
"
);
$ar2
=
array
(
4
=>
"
three
"
,
9
=>
"
four
"
,
1
=>
"
five
"
);
array_multisort
(
$ar1
,
$ar2
);
foreach
(
$ar1
as
$key
=>
$value
){
var_dump
(
$value
);
}
echo
"
<hr/>
"
;
foreach
(
$ar2
as
$key
=>
$value
){
var_dump
(
$value
);
}
?>
这个的运行结果是:
string(3) "one" string(3) "two" string(4) "zero"
string(4) "four" string(4) "five" string(5) "three"
当然这个上面的排序我想大家应该能看懂.嘻嘻.就是按字符串升序排的,和单独运行sort的结果一样.
但是下面是怎么回事呢??
下面的也是按升序排的?
很显然不是,因为如果是升序应该是 five four three
那么是怎么回事呢?
现在把程序改一下,
<?
php
$ar1
=
array
(
5
=>
"
zero
"
,
1
=>
"
uone
"
,
4
=>
"
two
"
);
$ar2
=
array
(
4
=>
"
three
"
,
9
=>
"
four
"
,
1
=>
"
five
"
);
array_multisort
(
$ar1
,
$ar2
);
foreach
(
$ar1
as
$key
=>
$value
){
var_dump
(
$value
);
}
echo
"
<hr/>
"
;
foreach
(
$ar2
as
$key
=>
$value
){
var_dump
(
$value
);
}
?>
再来看它
string(3) "two" string(4) "uone" string(4) "zero"
string(4) "five" string(4) "four" string(5) "three"
第一行还是按升序排列,第二行也变成升序了?呵.怎么回事呢??
仔细读手册上的函数定义,再加上运行结果,不难看出这样一件事:
那就是,第二行的元素和第一行的是对应的.也就是说
three的位置对应zero的位置,four的位置对应那个uone的位置,five的位置对应two,
排列完之后仍然是这个对应关系.呵.就是这样喽~~
大家可以继续把上面的顺序换一下,看输出后是不是永远是one对应着four哦.呵..
Good Good Strudy , Day Day Up!!!
分享到:
相关推荐
array_change_key_case -- 返回...array_multisort -- 对多个数组或多维数组进行排序 array_pad -- 用值将数组填补到指定长度 array_pop -- 将数组最后一个单元弹出(出栈) array_product -- 计算数组中所有值的乘积
`array_multisort()` 函数的强大之处在于它可以处理多维数组的排序,尤其是在需要基于一个或多个键值对整个数据集进行排序时。例如,在上面的例子中,如果还需要按照 `num` 键的值进行降序排序,我们可以在调用 `...
### PHP 数组函数分类 PHP 是一种广泛使用的脚本语言,尤其在 Web 开发领域有着不可替代的地位。其中,PHP 的数组处理能力非常强大,提供了丰富的内置函数来操作数组。根据给定的内容,我们将对 PHP 的数组函数进行...
`array_multisort()` 是 PHP 中的一个非常有用的数组函数,它允许我们对多个数组或多维数组进行排序。这个函数特别适用于需要根据二维数组中特定键的值进行排序的情况,例如,当我们有一个用户数据列表,需要按照...
`PHP array_multisort()` 函数是一个非常有用的工具,它允许你对多个关联数组进行排序,同时保持元素之间的对应关系。这个函数的核心功能是根据一个或多个数组的元素值对这些数组进行同步排序,确保排序后的元素依然...
`array_multisort()`函数是PHP内置的函数,专门用于多维数组的排序。它的语法如下: ```php array_multisort(array1, sort_type1, ..., array_n, sort_type_n) ``` - `array1, ..., array_n`:要排序的一个或多个...
本文将深入探讨PHP数组的分类、定义、遍历方式、预定义数组、处理函数以及操作中的注意事项。 一、数组的分类 PHP数组主要分为两种类型: 1. 索引数组:数组元素的下标是连续的数字,通常从0开始。 2. 关联数组:...
array_multisort — 对多个数组或多维数组进行排序 说明 bool array_multisort ( array ar1 [, mixed arg [, mixed … [, array …]]] ) array_multisort (PHP 4, PHP 5) 如果成功则返回 TRUE,失败则返回 FALSE。...
`array_walk()` 与 `array_map()`、`array_multisort()`、`array_column` 等其他数组处理函数密切相关。例如,`array_map()` 也用于处理数组,但它返回一个新的数组,而不是直接修改原数组;而 `array_multisort()` ...
array_multisort()适用于需要根据其他数组的排序结果来重新排列原数组元素的场景,而usort()则提供了更多的灵活性,允许我们在回调函数中定义复杂的排序逻辑。两者各有优势,具体选择哪一个取决于具体的排序需求和...
在本篇文章中,将重点介绍如何使用`array_map`和`array_multisort`这两个函数来高效地对多维数组进行排序操作。 首先,`array_map`函数是PHP中用于对数组的每个元素应用回调函数,并返回一个新数组,数组中包含了回...
### PHP参考手册:数组函数详解 #### 概述 PHP是一种广泛使用的开源脚本语言,尤其适用于Web开发。PHP的强大之处在于它丰富的内置函数库,其中数组处理函数尤其强大且实用。本文档将深入探讨PHP中与数组操作相关的...
- `array_multisort()`可以对多个数组或多维数组进行排序。 - `array_pad()`将数组填充到指定长度,填充值可选。 - `array_pop()`移除并返回数组的最后一个元素。 - `array_product()`计算数组所有元素的乘积。 ...
- **`array_multisort()`**:对多个数组或多维数组进行排序。 - **`array_pad()`**:用一个值扩展数组到指定长度。 - **`array_pop()`**:弹出数组中的最后一个元素。 - **`array_product()`**:计算数组所有元素的...
`array_multisort()` 是 PHP 中的一个非常有用的函数,它允许你对多个数组或多维数组进行排序。这个函数特别适合处理复杂的数据结构,比如在处理数据库查询结果或需要根据某些特定条件对数据进行排序时。 函数签名...