PHP array_multisort() 函数用法及示例

PHP Array 函数手册

PHP array_multisort() 函数对多个数组或多维数组进行排序

语法

array_multisort(array1,sorting order,sorting type,array2...);

定义和用法

 array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。
关联(string)键名保持不变,但数字键名会被重新索引。

参数

序号参数及说明
1

array1(必填)

它指定一个数组

2

sorting order(选填)

它指定排序顺序。可能的值-

  • SORT_ASC 默认。升序排列(A-Z)

  • SORT_DESC 降序排序(Z-A)

3

sorting type(选填)

比较元素时,它指定要使用的类型。可能的值:

  • SORT_REGULAR - 将项目按照通常方法比较(不修改类型)

  • SORT_NUMERIC - 按照数字大小比较

  • SORT_STRING - 按照字符串比较

  • SORT_LOCALE_STRING - 根据当前的本地化设置,按照字符串比较。 它会使用 locale 信息,可以通过 setlocale() 修改此信息。

  • SORT_NATURAL - 以字符串的"自然排序",类似 natsort()

  • SORT_FLAG_CASE - 可以组合 (按位或 OR) SORT_STRING 或者 SORT_NATURAL 大小写不敏感的方式排序字符串。

4

array2(选填)

它指定一个数组

返回值

成功,返回TRUE;失败,返回FALSE。

在线示例

1、多个数组排序示例

<?php
   $input1 = array("10", 100, 100, "a");
   $input2 = array(1, 3, "2", 1);
   
   array_multisort($input1, $input2);
   print_r($input1);
   print_r($input2);
?>
测试看看‹/›

输出结果:

Array
(
    [0] => 10
    [1] => a
    [2] => 100
    [3] => 100
)
Array
(
    [0] => 1
    [1] => 1
    [2] => 2
    [3] => 3
)

2、排序多维数组示例

<?php
$ar = array(
       array("10", 11, 100, 100, "a"),
       array(   1,  2, "2",   3,   1)
      );
array_multisort($ar[0], SORT_ASC, SORT_STRING,
                $ar[1], SORT_NUMERIC, SORT_DESC);
var_dump($ar);
?>
测试看看 ‹/›

输出结果:

array(2) {
  [0]=> array(5) {
    [0]=> string(2) "10"
    [1]=> int(100)
    [2]=> int(100)
    [3]=> int(11)
    [4]=> string(1) "a"
  }
  [1]=> array(5) {
    [0]=> int(1)
    [1]=> int(3)
    [2]=> string(1) "2"
    [3]=> int(2)
    [4]=> int(1)
  }
}

3、不区分大小写字母排序数组

<?php
$array = array('Alpha', 'atomic', 'Beta', 'bank');
$array_lowercase = array_map('strtolower', $array);

array_multisort($array_lowercase, SORT_ASC, SORT_STRING, $array);

print_r($array);
?>
测试看看 ‹/›

输出结果:

Array
(
    [0] => Alpha
    [1] => atomic
    [2] => bank
    [3] => Beta
)

 PHP Array 函数手册