php函数array_multisort()的理解

关于PHP数组函数array_multisort(),官方给的解释是:

对多个数组或者多维数组进行排序。

解释很简单,但具体怎么用呢?

使用该函数先说明一个前提条件,那就是参与排序的多个数组中的元素个数必须一致! 至于为什么,接着往下看。

举个例子说明:

对应的人去了对应的城市,然后对城市排序。

// 铁柱去了深圳,二蛋去了北京,大狗去了上海
$arr1 = array('深圳','北京','上海');
$arr2 = array('铁柱','二蛋','大狗');
array_multisort($arr1,$arr2);
var_dump($arr1);
var_dump($arr2);

输出结果:

对城市排序后,人的排序也作出调整,还是对应着城市。

array(3) {
  [0]=>
  string(6) "上海"
  [1]=>
  string(6) "北京"
  [2]=>
  string(6) "深圳"
}
array(3) {
  [0]=>
  string(6) "大狗"
  [1]=>
  string(6) "二蛋"
  [2]=>
  string(6) "铁柱"
}

可以得出一下结论

根据对数组arr1排序,数组arr2也作出了对应的调整,即根据对数组arr1的排序,来排序数组arr2。

文章开始说的参与排序数组中的元素个数必须一致的原因也很明了了,因为他们是一一对应的关系。

具体参数

明白了用法后,再来看一些参数细节。

array_multisort(
    array &$array1,
    mixed $array1_sort_order = SORT_ASC,
    mixed $array1_sort_flags = SORT_REGULAR,
    mixed ...$rest
):bool
$array1
对该参数排序
$array1_sort_order
排列的顺序,默认升序SORT_ASC,降序SORT_DESC
$array1_sort_flags
排序的设定:
SORT_REGULAR - 将项目按照通常方法比较(不修改类型)
SORT_NUMERIC - 按照数字大小比较
SORT_STRING - 按照字符串比较
SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。
SORT_NATURAL - 以字符串的"自然排序",类似 natsort()
SORT_FLAG_CASE - 可以组合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小写不敏感的方式排序字符串。
$rest
根据$array1排序的数组,可以是1个或多个。
返回值
成功时返回 true, 或者在失败时返回 false。

举例:

// 人员信息整理
$names = array('鲍勃','汤姆','约翰');
$ages = array(17,23,21);
$address = array('四平','铁岭','八里沟');
// 根据年龄降序排列
array_multisort($ages,SORT_DESC,SORT_NUMERIC,$names,$address);

var_dump($names);
var_dump($ages);
var_dump($address);

输出结果:

array(3) {
  [0]=>
  string(6) "汤姆"
  [1]=>
  string(6) "约翰"
  [2]=>
  string(6) "鲍勃"
}
array(3) {
  [0]=>
  int(23)
  [1]=>
  int(21)
  [2]=>
  int(17)
}
array(3) {
  [0]=>
  string(6) "铁岭"
  [1]=>
  string(9) "八里沟"
  [2]=>
  string(6) "四平"
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值