📜  手动对 php 中的数组进行排序 - PHP (1)

📅  最后修改于: 2023-12-03 15:10:00.381000             🧑  作者: Mango

手动对 PHP 中的数组进行排序

在 PHP 中,我们可以使用内置函数进行数组排序。但是,有时候我们可能需要手动排序来满足特定的需求。本文将介绍如何手动对 PHP 中的数组进行排序。

1. 使用 sort() 函数

PHP 中的 sort() 函数可以按升序对数组进行排序。如果要按降序对数组进行排序,则可以使用 rsort() 函数。

$numbers = array(5, 3, 8, 1, 9);
sort($numbers);
print_r($numbers);

// 输出
// Array ( [0] => 1 [1] => 3 [2] => 5 [3] => 8 [4] => 9 )
$numbers = array(5, 3, 8, 1, 9);
rsort($numbers);
print_r($numbers);

// 输出
// Array ( [0] => 9 [1] => 8 [2] => 5 [3] => 3 [4] => 1 )
2. 使用 usort() 函数

如果我们需要按照一定的规则对数组进行排序,比如按照字符串长度排序,我们可以使用 usort() 函数。

一个例子是按照字符串长度排序:

$strings = array("apple", "orange", "banana", "pear", "strawberry");
usort($strings, function($a, $b) {
    return strlen($a) - strlen($b);
});
print_r($strings);

// 输出
// Array ( [0] => pear [1] => apple [2] => banana [3] => orange [4] => strawberry )

第二个参数是一个回调函数,用于比较两个元素。如果第一个元素应该排在第二个元素之前,返回一个负数;如果相等,返回 0;如果第一个元素应该排在第二个元素之后,返回一个正数。

3. 使用 uasort() 函数

如果我们需要按照一定的规则对关联数组进行排序,我们可以使用 uasort() 函数。该函数和 usort() 类似,区别是它可以处理关联数组。

一个例子是按照值的大小对关联数组进行排序:

$marks = array("Peter" => 80, "John" => 60, "Mary" => 90, "Tom" => 70);
uasort($marks, function($a, $b) {
    return $b - $a;
});
print_r($marks);

// 输出
// Array ( [Mary] => 90 [Peter] => 80 [Tom] => 70 [John] => 60 )
结论

本文介绍了如何手动对 PHP 中的数组进行排序,包括使用 sort() 函数、rsort() 函数、usort() 函数和 uasort() 函数。在实际开发中,我们应该根据具体的需求来选择合适的方法。