php 多维数组排序函数,PHP 对多个数组或多维数组进行排序 array_multisort 函数

array_multisort() 函数用于对多个数组或多维数组进行排序。

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_order 取值

说明

SORT_ASC

默认值,按照上升顺序排序

SORT_DESC

按照下降顺序排序

可选参数 sort_flags 规定排序类型:

sort_flags 取值

说明

SORT_REGULAR

默认值,按照通常方法比较

SORT_NUMERIC

单元被作为数字来比较

SORT_STRING

单元被作为字符串来比较

每个数组之后不能指定两个同类的排序标志,且每个数组后指定的排序标志仅对该数组有效,如果缺少对应标志将采用默认值。

输入数组被当成一个表的列并以行来排序,这类似于 SQL 的 ORDER BY 子句功能。第一个数组是要排序的主要数组,单元的值相同的话就按照下一个输入数组中相应值的大小来排序,依此类推。

例子1:

$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,主数组单元值有同样的情况:

$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,多维数组排序:

$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,数字与字符混合:

$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)

}

}

参考阅读

sort():对数组单元从低到高进行排序。

asort():对数组单元从低到高进行排序并保持索引关系。

ksort():对数组单元按照键名从低到高进行排序。

natsort():对数组使用 自然算法 进行排序。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值