array_multisort() Function
array_multisort()是PHP中的一个内置函数,用于同时对多个数组或多维数组进行排序。
对于这个函数,应该记住字符串键将被维护,但是数字键将被重新索引,从0开始,增加1。
语法
1 | bool array_multisort($array1, sorting_order, sorting_type, $array2..) |
参数:数组一般取一个需要排序的数组参数。此外,该函数还可以接受另外两个可选参数sorting_order和sorting_type。
- $array1:该参数指定要排序的数组。
- sorting_order:该参数指定使用的顺序,即升序或降序。这个参数的默认值是SORT_ASC。也就是说,按升序排序。为了按降序排序,我们必须将这个参数设置为SORT_DESC。
- sorting_type:该参数指定数组的排序选项,它们如下:
- SORT_REGULAR:定期比较元素(标准ASCII)。
- SORT_NUMERIC:将元素作为数字值进行比较。
- SORT_STRING:将元素作为字符串值进行比较。
- SORT_LOCALE_STRING:根据当前地区,将元素作为字符串进行比较。
- SORT_NATURAL:使用“自然排序”将元素作为字符串进行比较。
- SORT_FLAG_CASE:可以(按位或)与SORT_STRING或SORT_NATURAL组合,以区分大小写。
如果我们想对多个数组进行排序,可以将它们作为参数传递,比如$array2、$array3……然后是它们的sorting_order、sorting_type。
返回值:函数的作用是:返回一个布尔值。也就是说,它会在成功时返回TRUE,在失败时返回FALSE。
注意:如果两个成员在比较时相等,则它们在排序数组中的相对顺序未定义。
下面的程序演示了array_multisort()函数:
程序1
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php // Input array $animals = array("Dog", "Cat", "Horse", "Bear", "Zebra", "Lion"); // sorting array using default values // for sorting_order and sorting_type array_multisort($animals); print_r($animals); ?> |
输出
1 2 3 4 5 6 7 8 9 | Array ( [0] => Bear [1] => Cat [2] => Dog [3] => Horse [4] => Lion [5] => Zebra ) |
程序2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php // Input arrays $array1=array("Dog", "Cat"); $array2=array("Fido", "Missy"); // sorting multiple arrays using default values // for sorting_order and sorting_type array_multisort($array1, $array2); // printing sorted arrays print_r($array1); print_r($array2); ?> |
输出
1 2 3 4 5 6 7 8 9 10 | Array ( [0] => Cat [1] => Dog ) Array ( [0] => Missy [1] => Fido ) |
程序3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php // Input arrays $array1=array("Dog", "Dog", "Cat"); $array2=array("Pluto", "Fido", "Missy"); // sorting multiple arrays array_multisort($array1, SORT_ASC, $array2, SORT_DESC); // Printing sorted arrays print_r($array1); print_r($array2); ?> |
输出
1 2 3 4 5 6 7 8 9 10 11 12 | Array ( [0] => Cat [1] => Dog [2] => Dog ) Array ( [0] => Missy [1] => Pluto [2] => Fido ) |
参考
http://php.net/manual/en/function.array-multisort.php