array_multisort()
是 PHP 中的一个内置函数,用于对多个数组或多维数组进行排序。这个函数可以用来对一个或多个数组进行排序,同时保留原始数组中键和值之间的关联。array_multisort()
函数的工作原理如下:
- 参数:
array_multisort()
函数接受两个或多个数组作为参数。第一个参数是要排序的主数组,其他参数是要根据主数组的排序结果进行排序的数组。这些数组可以是一维或多维数组。 - 排序算法:
array_multisort()
使用了稳定的排序算法,通常是归并排序(Merge Sort)或 Timsort。这意味着相等的元素在排序后会保持它们原始的顺序。 - 排序过程:
- 首先,
array_multisort()
会根据主数组的值对所有数组进行排序。 - 然后,它会根据排序后的主数组的顺序,调整其他数组的元素顺序。
- 如果提供了多个数组作为参数,那么它们的元素顺序将与主数组的排序结果保持一致。
- 首先,
- 返回值:
array_multisort()
函数没有返回值,但它会直接修改传递给它的数组。
下面是一个简单的示例,说明如何使用 array_multisort()
函数:
$array1 = array("apple", "orange", "banana", "pear"); $array2 = array(5, 3, 8, 1); array_multisort($array2, SORT_ASC, $array1, SORT_ASC); print_r($array1); // Output: Array ( [0] => pear [1] => orange [2] => apple [3] => banana ) print_r($array2); // Output: Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 8 )
在这个示例中,我们有两个数组:$array1
和 $array2
。我们使用 array_multisort()
函数按升序对 $array2
进行排序,并根据 $array2
的排序结果对 $array1
进行排序。最后,我们打印排序后的数组。