특정 키를 기준으로 다차원 배열 정렬
특정 키 값을 기준으로 다차원 배열을 정렬하는 방법은 다음과 같습니다. PHP. 이 기술을 사용하여 일반적인 문제와 그 해결책을 살펴보겠습니다.
문제:
"순서" 키를 기준으로 배열을 어떻게 정렬합니까?
어레이의 구조:
$myArray = [ [ 'hashtag' => 'a7e87329b5eab8578f4f1098a152d6f4', 'title' => 'Flower', 'order' => 3 ], [ 'hashtag' => 'b24ce0cd392a5b0b8dedc66c25213594', 'title' => 'Free', 'order' => 2 ], [ 'hashtag' => 'e7d31fc0602fb2ede144d18cdffd816b', 'title' => 'Ready', 'order' => 1 ] ];
해결책:
1. 사용자 정의 함수와 함께 usort 사용:
이 방법에는 "순서" 값을 비교하고 적절한 비교 결과를 반환하는 사용자 정의 정렬 함수를 정의하는 작업이 포함됩니다.
function sortByOrder($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; } usort($myArray, 'sortByOrder');
2. 익명 함수 사용:
PHP 5.3 이상에서는 익명 함수를 사용하여 사용자 정의 정렬 기능을 단순화할 수 있습니다.
usort($myArray, function($a, $b) { if ($a['order'] > $b['order']) { return 1; } elseif ($a['order'] < $b['order']) { return -1; } return 0; });
3. 우주선 연산자 사용(PHP 7 이상):
PHP 7에서는 간결한 비교 연산을 위해 우주선 연산자(< =>)를 도입했습니다. 4. 화살표 함수 사용(PHP 7.4 이상): 화살표 함수는 함수 키워드를 제거하여 코드를 더욱 단순화합니다. 다차원 정렬: 중첩 구조가 있는 배열의 경우 정렬 기능을 확장하여 여러 키를 고려할 수 있습니다. 이를 통해 "하위 순서" 내에서 "순서"를 기준으로 정렬하는 등 복잡한 정렬이 가능합니다. 참고: 키 연결을 유지해야 하는 경우 대신 uasort() 사용을 고려하세요. usort(). 위 내용은 특정 키를 기준으로 PHP에서 다차원 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!usort($myArray, function($a, $b) {
return $a['order'] <=> $b['order'];
});
usort($myArray, fn($a, $b) => $a['order'] <=> $b['order']);
usort($myArray, function($a, $b) {
$retval = $a['order'] <=> $b['order'];
if ($retval == 0) {
$retval = $a['suborder'] <=> $b['suborder'];
if ($retval == 0) {
$retval = $a['details']['subsuborder'] <=> $b['details']['subsuborder'];
}
}
return $retval;
});