>  기사  >  백엔드 개발  >  PHP 배열의 고급 정렬: 사용자 정의 비교기 및 익명 함수

PHP 배열의 고급 정렬: 사용자 정의 비교기 및 익명 함수

王林
王林원래의
2024-04-27 11:09:02457검색

PHP에는 배열을 사용자 정의 순서로 정렬하는 두 가지 방법이 있습니다. 사용자 정의 비교기: Comparable 인터페이스를 구현하고 두 객체의 비교 규칙을 지정합니다. 익명 함수: 두 개체를 기준과 비교하는 사용자 지정 비교기로 익명 함수를 만듭니다.

PHP 数组高级排序:自定义比较器和 匿名函数

PHP 고급 배열 정렬: 사용자 정의 비교기 및 익명 함수

PHP에서 배열을 사용자 정의 순서로 정렬하려면 표준 정렬 기능이 제공할 수 있는 것 이상의 기능이 필요합니다. 사용자 정의 비교기와 익명 함수는 sort()rsort()와 같은 내장 함수보다 더 유연한 정렬 메커니즘을 제공합니다. sort()rsort() 等内置函数更灵活的排序机制。

自定义比较器

自定义比较器是一种实现 Comparable 接口的类,它定义了如何比较两个对象。实现 compareTo()

사용자 정의 비교기

사용자 정의 비교기는 두 개체를 비교하는 방법을 정의하는 Comparable 인터페이스를 구현하는 클래스입니다. compareTo() 메서드를 구현하여 어떤 개체가 다른 개체보다 크거나 작거나 같은 것으로 간주되는지 지정합니다.

class CustomComparator implements Comparable {
    public function compareTo($a, $b): int {
        if ($a == $b) {
            return 0;
        }
        return $a > $b ? 1 : -1;
    }
}

익명 함수

익명 함수는 즉석에서 생성하여 인수로 전달할 수 있는 이름 없는 함수입니다. 사용자 정의 비교기를 만드는 데 자주 사용됩니다.

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

실제 예

학생 이름과 점수가 포함된 배열을 고려하세요.

$students = [
    ['name' => 'Alice', 'score' => 85],
    ['name' => 'Bob', 'score' => 90],
    ['name' => 'Carol', 'score' => 80],
];
사용자 정의 비교기 접근 방식

$comparator = new CustomComparator();
usort($students, [$comparator, 'compareTo']);

🎜익명 함수 접근 방식🎜🎜
usort($students, function($a, $b) {
    return $a['score'] <=> $b['score'];
});
🎜위의 코드는 다음과 같습니다. 학생 점수를 기준으로 가장 작은 것부터 가장 큰 것 순으로 배열을 정렬합니다. 🎜
[
    ['name' => 'Carol', 'score' => 80],
    ['name' => 'Alice', 'score' => 85],
    ['name' => 'Bob', 'score' => 90],
];

위 내용은 PHP 배열의 고급 정렬: 사용자 정의 비교기 및 익명 함수의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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