>  기사  >  백엔드 개발  >  PHP 함수 라이브러리의 usort() 함수 사용법 소개

PHP 함수 라이브러리의 usort() 함수 사용법 소개

王林
王林원래의
2023-06-27 08:49:141501검색

PHP는 개발자가 일반적으로 사용하는 많은 기능을 갖춘 널리 사용되는 프로그래밍 언어입니다. usort()는 그 중 하나입니다. usort()의 주요 기능은 지정된 비교 함수에 따라 배열을 정렬하는 것입니다.

usort() 함수의 구문은 다음과 같습니다.

usort(array $array, callable $cmp_function): bool

위 코드에서 $array는 정렬할 배열을 나타내고, $cmp_function은 호출 가능한 비교 함수. 반환 값은 정렬이 성공했는지 여부를 나타내는 부울 유형입니다. $array 表示要排序的数组,$cmp_function 是一个可调用的比较函数。返回值是布尔类型,表示排序是否成功。

下面就对 usort() 函数进行详细介绍。

比较函数

usort() 函数中传入的比较函数必须是可调用的,也就是说可以被调用执行的函数。比较函数一般在调用 usort() 时定义,通过一个匿名函数或是指定函数名称的方式来定义。比如,你可以这样来定义一个比较函数:

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

在这个比较函数中,$a$b 分别代表 usort() 函数传入的要比较的两个参数。根据自己的需求,你可以自定义比较函数的实现方法。比较函数返回值可以是 0、-1 或 1。若返回 0,则代表两个参数相等;若返回 -1,则代表 $a$b 小;若返回 1,则代表 $a$b 大。

使用方法

接下来,我们来看一下如何使用 usort() 函数来对数组进行排序。假设我们有一个数组,其中包含如下元素:

$array = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3];

如果我们想对这个数组进行排序,可以使用 usort() 函数:

usort($array, "cmp");

这里的 "cmp"

다음은 usort() 함수에 대한 자세한 소개입니다.

비교 함수

usort() 함수에 전달되는 비교 함수는 호출 가능, 즉 호출 및 실행이 가능한 함수여야 합니다. 비교 함수는 일반적으로 usort()를 호출할 때 익명 함수를 통해 또는 함수 이름을 지정하여 정의됩니다. 예를 들어 다음과 같은 비교 함수를 정의할 수 있습니다.

[1, 1, 2, 3, 3, 4, 5, 5, 6, 9]

이 비교 함수에서 $a$b는 각각 usort에 의해 전달된 값을 나타냅니다. () 두 매개변수를 비교하는 함수입니다. 자신의 필요에 따라 비교 기능의 구현 방법을 사용자 정의할 수 있습니다. 비교 함수 반환 값은 0, -1 또는 1일 수 있습니다. 0이 반환되면 두 매개변수가 동일하다는 의미이고, -1이 반환되면 $a$b보다 작다는 의미입니다. 이는 $a $b보다 크다는 의미입니다.

사용 방법

다음으로 usort() 함수를 사용하여 배열을 정렬하는 방법을 살펴보겠습니다. 다음 요소를 포함하는 배열이 있다고 가정합니다.

$students = [
    ["name" => "Alice", "age" => 18],
    ["name" => "Bob", "age" => 20],
    ["name" => "Charlie", "age" => 19],
];

이 배열을 정렬하려면 usort() 함수를 사용할 수 있습니다.
    function cmp_age($a, $b) {
        if ($a["age"] == $b["age"]) {
            return 0;
        }
        return ($a["age"] < $b["age"]) ? -1 : 1;
    }
  1. 여기서 "cmp"는 우리가 정의한 비교입니다. 함수의 이름입니다. 위 코드를 실행하면 정렬된 배열을 얻을 수 있습니다.
  2. usort($students, "cmp_age");
  3. usort() 함수는 숫자뿐만 아니라 문자열, 객체 등도 정렬할 수 있습니다. 각각 속성 값을 가진 여러 객체로 구성된 배열이 있다고 상상해 보세요:
  4. [
        ["name" => "Alice", "age" => 18],
        ["name" => "Charlie", "age" => 19],
        ["name" => "Bob", "age" => 20],
    ]
  5. 이 학생들을 연령별로 정렬하려면 usort() 함수를 사용하고 새 비교 함수를 정의할 수 있습니다:
  6. rrreee
  7. 이 비교 함수에서 , 학생 개체의 연령 속성을 비교하여 정렬합니다. usort() 함수를 사용하여 이 학생 배열을 정렬하세요:
  8. rrreee
위 코드를 실행한 후, 학생들을 나이에 따라 정렬할 수 있습니다:

rrreee

Notes

usort() 함수를 사용할 때 주의가 필요합니다 다음 질문: 🎜🎜🎜전달된 비교 함수는 호출 가능해야 합니다. 즉, 호출 및 실행이 가능한 함수여야 합니다. 🎜🎜비교 함수의 반환 값은 0, -1 또는 1이어야 합니다. 🎜🎜usort() 함수는 원래 배열을 직접 수정하므로 사용 시 해당 배열이 다른 곳에서 참조되어 사용되는지 주의해야 합니다. 🎜🎜배열에 두 개 이상의 동일한 요소가 있는 경우 usort() 함수는 순서를 보장할 수 없습니다. 🎜🎜🎜요약🎜🎜usort() 함수는 PHP 개발에서 매우 일반적으로 사용되는 함수로, 배열을 편리하게 정렬할 수 있습니다. 이를 사용할 때 비교 함수를 정의하고 이를 usort() 함수에 매개변수로 전달해야 합니다. 주의해야 할 몇 가지 세부 사항이 있지만 전반적으로 usort() 함수를 사용하는 것은 매우 간단합니다. 🎜

위 내용은 PHP 함수 라이브러리의 usort() 함수 사용법 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.