>백엔드 개발 >PHP 튜토리얼 >PHP에서 객체 배열을 사용자 정의 정렬하려면 어떻게 해야 합니까?

PHP에서 객체 배열을 사용자 정의 정렬하려면 어떻게 해야 합니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-17 12:23:23264검색

How Can I Custom Sort an Array of Objects in PHP?

속성별 객체 배열 정렬 사용자 정의

소개:
프로그래밍에서는 데이터 구성 및 정렬이 매우 중요합니다. 각각 다양한 속성을 가진 엔터티를 나타내는 객체 배열이 있다고 가정해 보세요. 이름이나 개수 같은 특정 속성을 기준으로 이러한 개체를 정렬해야 하는 경우가 종종 있습니다. 이 문서에서는 PHP에서 객체 배열의 사용자 정의 정렬을 수행하는 방법을 살펴봅니다.

방법:
특정 속성을 기준으로 객체 배열을 정렬하려면 usort()는 다음과 같은 강력한 함수입니다. 비교 프로세스를 사용자 정의할 수 있습니다. 두 개의 매개변수가 필요합니다:

  1. 정렬할 배열: 객체가 포함된 배열.
  2. 비교 함수: 사용자 정의 정렬을 정의하는 함수 기준.

구현:
예는 다음과 같습니다.

function cmp($a, $b) {
    return strcmp($a->name, $b->name);
}

usort($your_data, "cmp");

이 예에서 cmp() 함수는 두 개체의 이름을 비교합니다. 그리고 비교 결과를 반환합니다. 그런 다음 usort() 함수는 cmp()를 사용하여 name 속성에 따라 your_data 배열을 오름차순으로 정렬합니다.

대안:
기존 함수(cmp( )), 두 번째 인수로 대체 방법을 활용할 수도 있습니다. usort():

  • 익명 함수: (PHP 5.3 이상)
usort($your_data, function($a, $b) {
    return strcmp($a->name, $b->name);
});
  • 클래스 메소드:
usort($your_data, array($this, "cmp")); // cmp should be a method in the class
  • 화살표 기능: (PHP 7.4 이후)
usort($your_data, fn($a, $b) => strcmp($a->name, $b->name));

참고:

  • 숫자 속성 비교의 경우 $a->count - $b->를 사용할 수 있습니다. ;비교 함수의 개수.
  • PHP 7에는 Spaceship 연산자가 도입되었습니다. (<=>) 숫자 값 비교: fn($a, $b) => $a->개수 <=> $b->count.

위 내용은 PHP에서 객체 배열을 사용자 정의 정렬하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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