PHP에서 키를 기준으로 연관 배열을 정렬하는 방법 [중복]
배열 정렬은 프로그래밍에서 일반적인 작업일 수 있습니다. 특히 다음과 같은 경우에는 더욱 그렇습니다. PHP의 연관 배열과 같은 데이터 구조를 다룹니다. 이러한 배열은 일반 배열과 유사하지만 숫자 인덱스 대신 키로 요소에 액세스할 수 있습니다.
문제:
다음과 같은 요소가 포함된 연관 배열이 있습니다. 아래에 표시된 것:
Array ( [0] => Array ( [text] => tests [language] => [advertiserCompetitionScale] => 5 [avgSearchVolume] => 7480000 [lastMonthSearchVolume] => 9140000 ) [1] => Array ( [text] => personality tests [language] => [advertiserCompetitionScale] => 5 [avgSearchVolume] => 165000 [lastMonthSearchVolume] => 201000 ) [2] => Array ( [text] => online tests [language] => [advertiserCompetitionScale] => 5 [avgSearchVolume] => 246000 [lastMonthSearchVolume] => 301000 ) )
이 배열을 기준으로 내림차순으로 정렬하려고 합니다. "avgSearchVolume" 필드.
해결책:
PHP는 이 목적으로 사용할 수 있는 usort라는 내장 함수를 제공합니다. usort는 정렬할 배열과 비교 함수라는 두 가지 인수를 사용합니다. 비교 함수는 두 개의 배열 요소를 인수로 사용하고 음의 정수, 0 또는 양의 정수를 반환합니다.
배열을 정렬하려면 다음과 같은 비교 함수를 정의할 수 있습니다.
function cmp($a, $b) { return $b['avgSearchVolume'] - $a['avgSearchVolume']; }
이 함수는 "avgSearchVolume"에서 첫 번째 요소의 "avgSearchVolume" 필드를 뺍니다. " 두 번째 요소의 필드입니다. 결과가 음수이면 두 번째 요소가 첫 번째 요소보다 먼저 와야 함을 의미합니다. 0이면 요소가 동일한 것으로 간주됩니다. 양수이면 첫 번째 요소가 두 번째 요소 앞에 와야 합니다.
마지막으로 usort를 호출하고 비교 함수를 두 번째 인수로 전달할 수 있습니다.
usort($array, "cmp");
usort를 호출한 후 배열 "avgSearchVolume" 필드를 기준으로 내림차순으로 정렬됩니다.
위 내용은 특정 키를 기준으로 PHP에서 다차원 연관 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!