속성별로 개체 배열 정렬
다양한 프로그래밍 시나리오에서 개체 배열을 접할 수 있습니다. 이러한 개체는 이름 및 개수와 같은 여러 속성을 가지고 있습니다. 특정 속성을 기반으로 이러한 객체를 구성하면 유용할 수 있습니다.
비교 함수 사용자 정의: usort
PHP는 배열 정렬을 위한 usort 함수를 제공합니다. 이 기능을 사용하면 정렬에 사용되는 비교 기능을 사용자 정의할 수 있어 개체를 정렬할 속성을 지정할 수 있습니다.
usort의 구문은 다음과 같습니다.
usort($array, $compare_function)
여기서 $array는 정렬할 객체의 배열이고 $compare_function은 비교를 정의하는 호출 가능한 함수입니다. logic.
예: 이름별로 개체 정렬
다음 개체 배열을 고려하세요.
$array = [ (object) ['name' => 'Mary Jane', 'count' => 420], (object) ['name' => 'Johnny', 'count' => 234], (object) ['name' => 'Kathy', 'count' => 4354], ... ];
오름차순으로 이름별로 배열을 정렬하려면 순서에 따라 다음 비교 함수를 정의합니다.
function cmp($a, $b) { return strcmp($a->name, $b->name); }
이 함수는 두 이름을 비교합니다. $a->name이 $b->name보다 크면 1을 반환하고, $b->name보다 작으면 -1을, 같으면 0을 반환하는 strcmp 함수를 사용하는 객체입니다.
마지막으로 호출 배열을 정렬하려면 비교 함수를 사용하여 usort를 사용하세요.
usort($array, 'cmp');
대체 비교 옵션
사용자 정의 비교 함수를 사용하는 것 외에도 usort는 다음을 포함하여 비교 논리를 정의하기 위한 다양한 다른 방법을 지원합니다.
익명 함수(PHP 5.3 ):
usort($array, function($a, $b) { return strcmp($a->name, $b->name); });
클래스 메서드:
usort($array, array($this, "cmp"));
화살표 함수( PHP 7.4 ):
usort($array, fn($a, $b) => strcmp($a->name, $b->name));
숫자 값 정렬
갯수와 같은 숫자 속성을 정렬할 때 우주선 연산자를 사용할 수 있습니다. (<=>):
usort($array, fn($a, $b) => $a->count <=> $b->count);
위 내용은 특정 속성을 기준으로 PHP의 개체 배열을 어떻게 정렬할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!