在本教程中,您将学习如何在PHP中按升序或降序对数组的元素 或 键进行排序。
在上一章中,您已经学习了PHP数组的基本知识,即什么是数组,如何创建它们,如何查看它们的结构,如何访问它们的元素等。您可以使用数组做更多的事情,比如按照您指定的顺序对元素进行排序。
PHP附带了许多内置函数,这些函数专门设计用于以不同的方式对数组元素进行排序,例如按字母或数字的升序或降序。在这里,我们将探讨一些最常用于数组排序的函数。
sort() 和 rsort() — 对索引数组进行排序
asort() 和 arsort() — 用于按值对关联数组进行排序
ksort() 和 krsort() — 用于按键对关联数组进行排序
sort()函数用于按升序对索引数组的元素进行排序(字母按字母顺序,数字按数字)。
<?php //定义数组 $colors = array("Red", "Green", "Blue", "Yellow"); //排序和打印数组 sort($colors); print_r($colors); ?>测试看看‹/›
print_r() 语句提供以下输出:
Array ( [0] => Blue [1] => Green [2] => Red [3] => Yellow )
同样,您可以按升序对数组的数字元素进行排序。
<?php //定义数组 $numbers = array(1, 2, 2.5, 4, 7, 10); //排序和打印数组 sort($numbers); print_r($numbers); ?>测试看看‹/›
print_r() 语句提供以下输出:
Array ( [0] => 1 [1] => 2 [2] => 2.5 [3] => 4 [4] => 7 [5] => 10 )
rsort()函数用于按降序对索引数组的元素进行排序(字母顺序按字母,数字顺序按数字)。
<?php //定义数组 $colors = array("Red", "Green", "Blue", "Yellow"); // 排序和打印数组 rsort($colors); print_r($colors); ?>测试看看‹/›
print_r() 语句提供以下输出:
Array ( [0] => Yellow [1] => Red [2] => Green [3] => Blue )
同样,您可以按降序对数组的数字元素进行排序。
<?php //定义数组 $numbers = array(1, 2, 2.5, 4, 7, 10); //排序和打印数组 rsort($numbers); print_r($numbers); ?>测试看看‹/›
print_r() 语句提供以下输出:
Array ( [0] => 10 [1] => 7 [2] => 4 [3] => 2.5 [4] => 2 [5] => 1 )
asort()函数根据值按升序对关联数组的元素进行排序。 它的工作方式类似于sort(),但在排序时保留了键及其值之间的关联。
<?php //定义数组 $age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35); //按值对数组排序并打印 asort($age); print_r($age); ?>测试看看‹/›
print_r() 语句提供以下输出:
Array ( [Harry] => 14 [Peter] => 20 [Clark] => 35 [John] => 45 )
arsort()函数根据该值以降序对关联数组的元素进行排序。 它的工作方式与rsort()相似,但是在排序时会保留键及其值之间的关联。
<?php //定义数组 $age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35); //按值对数组排序并打印 arsort($age); print_r($age); ?>测试看看‹/›
print_r() 语句提供以下输出:
Array ( [John] => 45 [Clark] => 35 [Peter] => 20 [Harry] => 14 )
ksort()函数按键的升序对关联数组的元素进行排序。与asort()函数相同,它在排序时保留键及其值之间的关联。
<?php //定义数组 $age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35); //按键排序数组并打印 ksort($age); print_r($age); ?>测试看看‹/›
print_r() 语句提供以下输出:
Array ( [Clark] => 35 [Harry] => 14 [John] => 45 [Peter] => 20 )
ksort()函数通过键对其升序对关联数组的元素进行排序。 与asort()函数相同,它在排序时保留键及其值之间的关联。
<?php //定义数组 $age = array("Peter"=>20, "Harry"=>14, "John"=>45, "Clark"=>35); //按键排序数组并打印 krsort($age); print_r($age); ?>测试看看‹/›
print_r()语句提供以下输出:
Array ( [Peter] => 20 [John] => 45 [Harry] => 14 [Clark] => 35 )