📜  PHP | usort()函数(1)

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

PHP | usort()函数

简介

usort() 函数用于对数组进行排序,可以自定义比较函数来实现不同的排序规则。

语法
bool usort ( array &$array , callable $cmp_function )

参数解释:

  • array: 必选参数,要进行排序的数组。
  • cmp_function: 必选参数,自定义的比较函数。
返回值

如果成功则返回 true,否则返回 false

自定义比较函数

自定义的比较函数应该满足以下条件:

  • 当$a<$b时返回一个负数。
  • 当$a==$b时返回 0。
  • 当$a>$b时返回一个正数。

示例:

function cmp($a, $b)
{
    if ($a == $b) {
        return 0;
    }
    return ($a < $b) ? -1 : 1;
}
示例
// 以年龄进行排序
function cmp($a, $b)
{
    if ($a['age'] == $b['age']) {
        return 0;
    }
    return ($a['age'] < $b['age']) ? -1 : 1;
}

$people = array(
    array('name' => 'Tom', 'age' => 26),
    array('name' => 'Jerry', 'age' => 24),
    array('name' => 'Mike', 'age' => 28)
);
usort($people, "cmp");

print_r($people);

输出结果:

Array
(
    [0] => Array
        (
            [name] => Jerry
            [age] => 24
        )

    [1] => Array
        (
            [name] => Tom
            [age] => 26
        )

    [2] => Array
        (
            [name] => Mike
            [age] => 28
        )

)
注意事项
  • 自定义的比较函数必须是一个可调用的回调函数。
  • 比较函数应该是确定的,也就是说,多次调用该函数时要返回相同的结果。
  • 原数组的键名会被保留,不会重新索引。
结论

usort() 函数提供了一种灵活的排序方式,可以根据不同的需求自定义比较函数。它可以用来对数组按任意规则进行排序。