array_multisort()
PHP array_multisort() 函数用于一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序,如果成功则返回 TRUE,失败则返回 FALSE。
注意:关联(string)键名保持不变,但数字键名会被重新索引。
语法:
bool array_multisort( array1 [, sort_order][, sort_flags][, array2] ... )
array1 为必须参数,需要排序的数组。可选参数 sort_order 和 sort_flags 意义如下:
sort_order 取值 | 说明 |
---|---|
SORT_ASC | 默认值,按照上升顺序排序 |
SORT_DESC | 按照下降顺序排序 |
sort_flags 取值 | 说明 |
---|---|
SORT_REGULAR | 默认值,按照通常方法比较 |
SORT_NUMERIC | 单元被作为数字来比较 |
SORT_STRING | 单元被作为字符串来比较 |
每个数组之后不能指定两个同类的排序标志,且每个数组后指定的排序标志仅对该数组有效,如果缺少对应标志将采用默认值。
输入数组被当成一个表的列并以行来排序,这类似于 SQL 的 ORDER BY 子句功能。第一个数组是要排序的主要数组,单元的值相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。
例子1:
<?php $arr1 = array(1, 3, 2, 4); $arr2 = array("a", "b", "c", "d"); array_multisort($arr1, $arr2); print_r($arr1); print_r($arr2); ?>
运行该例子输出:
Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) Array ( [0] => a [1] => c [2] => b [3] => d )
可见第一个主要数组经过排序后,后面的数组会受到第一个数组的影响而保持对应关系。就上面的例子,哪怕给 arr2 加上 SORT_DESC (降序排列)参数,也不会影响到 arr2 的排序结果。这种影响在多维数组里也存在。
例子2,主数组单元值有同样的情况:
<?php $arr1 = array(1, 2, 2, 4); $arr2 = array("a", "b", "c", "d"); array_multisort($arr1, SORT_DESC, $arr2, SORT_ASC); print_r($arr1); print_r($arr2); ?>
运行该例子输出:
Array ( [0] => 4 [1] => 2 [2] => 2 [3] => 1 ) Array ( [0] => d [1] => b [2] => c [3] => a )
例子3,多维数组排序:
<?php $arr = array (array (1, 2, 3, 4), array ("a", "b", "b", "d")); array_multisort($arr[0], SORT_DESC, $arr[1], SORT_ASC); print_r($arr); ?>
运行该例子输出:
Array ( [0] => Array ( [0] => 4 [1] => 2 [2] => 2 [3] => 1 ) [1] => Array ( [0] => d [1] => b [2] => c [3] => a ) )
例子4,数字与字符混合:
<?php $arr = array (array ("11", 2, 2, "a"), array (1, 2, 3, 4)); array_multisort($arr[0], SORT_ASC, SORT_STRING, $arr[1], SORT_NUMERIC, SORT_DESC); var_dump($arr); ?>
运行该例子输出:
array(2) { [0]=> array(4) { [0] => string(2) "11" [1] => int(2) [2] => int(2) [3] => string(1) "a" } [1]=> array(4) { [0] => int(1) [1] => int(3) [2] => int(2) [3] => int(4) } }
本章节内容共分 17 部分:
- PHP 数组 Array详解
- PHP 数组遍历 foreach 语法结构
- PHP array_rand()从数组中随机取出1个或多个值
- PHP is_array() 检测变量是否是数组
- PHP 打印输出数组内容及结构 print_r 与 var_dump 函数
- PHP 计算数组中的单元数目或对象中的属性个数 count 函数
- PHP 计算数组中值的和与乘积 array_sum 与 array_product 函数
- PHP 统计数组中所有的值出现的次数 array_count_values 函数
- PHP 检查数组中是否存在某个值 in_array 函数
- PHP 检查给定的键名或索引是否存在于数组中 array_key_exists 函数
- PHP 在数组中搜索给定的值 array_search 函数
- PHP list() 将数组中的值赋给变量
- PHP 数组排序 sort、asort 及 ksort 系列函数
- PHP 对数组使用 自然算法 进行排序 natsort 与 natcasesort 函数
- PHP 对多个数组或多维数组进行排序 array_multisort 函数
- PHP 将数组打乱 shuffle 函数
- PHP array_filter()函数:过滤数组中的(空)值