您的位置 首页 教程

PHP 数组排序

PHP 数组排序是一种常见且有用的技术,可以快速对数组进行排列,以便更方便地访问和管理数组中的数据。PHP提供了多种排序方法,包括按值排序、按键排序和自定义排序。可以使用sort()、rsort()、asort()、arsort()、ksort()、krsort()和usort()等内置函数进行排序操作。

PHP 数组排序

PHP 数组排序

在 PHP 中,我们可以使用多种方法对数组进行排序。这些排序方法可以按照键和值对数组进行排序,并使用不同的算法来实现不同类型的排序。

1. sort()

sort() 函数用于对数组按照升序进行排序。sort() 函数可以用于对元素为数字的数组进行排序。它将返回 true(成功)或 false(失败)。

 $arr = array(80, 60, 50, 70, 40, 90);
 sort($arr);
 print_r($arr); // 结果为 Array ( [0] => 40 [1] => 50 [2] => 60 [3] => 70 [4] => 80 [5] => 90 )

2. rsort()

rsort() 函数用于对数组按照降序进行排序。rsort() 函数可以用于对元素为数字的数组进行排序。它将返回 true(成功)或 false(失败)。

 $arr = array(80, 60, 50, 70, 40, 90);
 rsort($arr);
 print_r($arr); // 结果为 Array ( [0] => 90 [1] => 80 [2] => 70 [3] => 60 [4] => 50 [5] => 40 )

3. asort()

asort() 函数用于对数组按照升序进行排序,并保留键值对关系。asort() 函数可以用于对元素为字符串的数组进行排序。它将返回 true(成功)或 false(失败)。

 $arr = array("banana", "apple", "pear", "orange");
 asort($arr);
 print_r($arr); // 结果为 Array ( [1] => apple [0] => banana [3] => orange [2] => pear )

4. arsort()

arsort() 函数用于对数组按照降序进行排序,并保留键值对关系。arsort() 函数可以用于对元素为字符串的数组进行排序。它将返回 true(成功)或 false(失败)。

 $arr = array("banana", "apple", "pear", "orange");
 arsort($arr);
 print_r($arr); // 结果为 Array ( [2] => pear [3] => orange [0] => banana [1] => apple )

5. ksort()

ksort() 函数按照键名对数组进行升序排列。ksort() 函数将保留键值和键与值之间的关联,并返回 true(成功)或 false(失败)。

 $arr = array("b" => 2, "a" => 1, "c" => 3);
 ksort($arr);
 print_r($arr); // 结果为 Array ( [a] => 1 [b] => 2 [c] => 3 )

6. krsort()

krsort() 函数按照键名对数组进行降序排列。krsort() 函数将保留键值和键与值之间的关联,并返回 true(成功)或 false(失败)。

 $arr = array("b" => 2, "a" => 1, "c" => 3);
 krsort($arr);
 print_r($arr); // 结果为 Array ( [c] => 3 [b] => 2 [a] => 1 )

7. usort()

usort() 函数使用用户自定义函数对数组进行排序。usort() 函数将返回 true(成功)或 false(失败)。

 function cmp($a, $b)
 {
     if ($a == $b) {
         return 0;
     }
     return ($a < $b) ? -1 : 1;
 }
 $arr = array(80, 60, 50, 70, 40, 90);
 usort($arr, "cmp");
 print_r($arr); // 结果为 Array ( [4] => 40 [2] => 50 [1] => 60 [3] => 70 [0] => 80 [5] => 90 )

8. uasort()

uasort() 函数使用用户自定义函数对数组按照升序进行排序,并保留键值关系。uasort() 函数将返回 true(成功)或 false(失败)。

 function cmp($a, $b)
 {
     if ($a == $b) {
         return 0;
     }
     return ($a < $b) ? -1 : 1;
 }
 $arr = array("banana" => 4, "apple" => 2, "pear" => 1, "orange" => 3);
 uasort($arr, "cmp");
 print_r($arr); // 结果为 Array ( [2] => pear [1] => apple [3] => orange [0] => banana )

9. uksort()

uksort() 函数使用用户自定义函数对数组按照键名进行排序。uksort() 函数将保留键值和键与值之间的关联,并返回 true(成功)或 false(失败)。

 function cmp($a, $b)
 {
     if ($a == $b) {
         return 0;
     }
     return ($a < $b) ? -1 : 1;
 }
 $arr = array("b" => 2, "a" => 1, "c" => 3);
 uksort($arr, "cmp");
 print_r($arr); // 结果为 Array ( [a] => 1 [b] => 2 [c] => 3 )

以上是排序数组的九种方法,每种方法都可以在不同的场合中使用。在实际开发中,按照需求选择最适合的方法进行数组排序,能够更好的提高代码的效率。

关于作者: 品牌百科

热门文章