PHP에는 배열을 사용자 정의 순서로 정렬하는 두 가지 방법이 있습니다. 사용자 정의 비교기: Comparable 인터페이스를 구현하고 두 객체의 비교 규칙을 지정합니다. 익명 함수: 두 개체를 기준과 비교하는 사용자 지정 비교기로 익명 함수를 만듭니다.
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!