PHP 数组排序


PHP 是一门使用广泛的服务器端脚本语言,其中数组是 PHP 中最常用的数据类型之一。PHP 针对数组提供了许多排序函数。在本文中,我们将讨论 PHP 中的数组排序以及如何使用它们。

一、PHP 数组排序函数 PHP 中包含了许多用于对数组进行排序的函数,例如:

  1. sort() - 通过升序对数组进行排序。
  2. rsort() - 通过降序对数组进行排序。
  3. asort() - 按照值升序对关联数组进行排序。
  4. arsort() - 按照值降序对关联数组进行排序。
  5. ksort() - 按照键升序对关联数组进行排序。
  6. krsort() - 按照键降序对关联数组进行排序。
  7. usort() - 使用自定义函数对数组进行排序。
  8. uasort() - 使用自定义函数对关联数组按照值进行排序。
  9. uksort() - 使用自定义函数对关联数组按照键进行排序。

二、sort() 和 rsort() sort() 和 rsort() 都对数组进行排序,不同的是 sort() 是升序排序,rsort() 是降序排序。例如:

$numbers = array(4, 2, 8, 6);
sort($numbers);
print_r($numbers);
// 输出结果:Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )

$numbers = array(4, 2, 8, 6);
rsort($numbers);
print_r($numbers);
// 输出结果:Array ( [0] => 8 [1] => 6 [2] => 4 [3] => 2 )

三、asort() 和 arsort() asort() 和 arsort() 都对关联数组进行排序,不同的是 asort() 是按照值升序排序,arsort() 是按照值降序排序。例如:

$age = array("Peter" => "35", "Ben" => "37", "Joe" => "43");
asort($age);
print_r($age);
// 输出结果:Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )

$age = array("Peter" => "35", "Ben" => "37", "Joe" => "43");
arsort($age);
print_r($age);
// 输出结果:Array ( [Joe] => 43 [Ben] => 37 [Peter] => 35 )

四、ksort() 和 krsort() ksort() 和 krsort() 都对关联数组进行排序,不同的是 ksort() 是按照键升序排序,krsort() 是按照键降序排序。例如:

$age = array("Peter" => "35", "Ben" => "37", "Joe" => "43");
ksort($age);
print_r($age);
// 输出结果:Array ( [Ben] => 37 [Joe] => 43 [Peter] => 35 )

$age = array("Peter" => "35", "Ben" => "37", "Joe" => "43");
krsort($age);
print_r($age);
// 输出结果:Array ( [Peter] => 35 [Joe] => 43 [Ben] => 37 )

五、usort()、uasort() 和 uksort() usort()、uasort() 和 uksort() 都允许使用自定义函数进行排序。usort() 对数组进行排序,uasort() 对关联数组按照值进行排序,uksort() 对关联数组按照键进行排序。例如:

function customSort($a, $b) {
  if ($a == $b) {
    return 0;
  }
  return ($a < $b) ? -1 : 1;
}

$numbers = array(4, 2, 8, 6);
usort($numbers, "customSort");
print_r($numbers);
// 输出结果:Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )

$age = array("Peter" => "35", "Ben" => "37", "Joe" => "43");
function customValueSort($a, $b) {
  if ($a == $b) {
    return 0;
  }
  return ($a < $b) ? -1 : 1;
}
uasort($age, "customValueSort");
print_r($age);
// 输出结果:Array ( [Peter] => 35 [Ben] => 37 [Joe] => 43 )

$age = array("Peter" => "35", "Ben" => "37", "Joe" => "43");
function customKeySort($a, $b) {
  if ($a == $b) {
    return 0;
  }
  return ($a < $b) ? -1 : 1;
}
uksort($age, "customKeySort");
print_r($age);
// 输出结果:Array ( [Ben] => 37 [Joe] => 43 [Peter] => 35 )

六、总结 PHP 数组排序函数提供了许多有用的功能。在选择哪种排序函数时,需要根据所要排序的数组类型和排序方式进行决定。使用自定义函数可以实现更加灵活的排序方式。