>백엔드 개발 >PHP 튜토리얼 >특정 키를 기준으로 PHP에서 다차원 배열을 정렬하는 방법은 무엇입니까?

특정 키를 기준으로 PHP에서 다차원 배열을 정렬하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-20 11:35:08117검색

How to Sort a Multi-Dimensional Array in PHP by a Specific Key?

특정 키를 기준으로 다차원 배열 정렬

특정 키 값을 기준으로 다차원 배열을 정렬하는 방법은 다음과 같습니다. 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에서는 간결한 비교 연산을 위해 우주선 연산자(< =>)를 도입했습니다.

usort($myArray, function($a, $b) {
    return $a['order'] <=> $b['order'];
});

4. 화살표 함수 사용(PHP 7.4 이상):

화살표 함수는 함수 키워드를 제거하여 코드를 더욱 단순화합니다.

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;
});

참고: 키 연결을 유지해야 하는 경우 대신 uasort() 사용을 고려하세요. usort().

위 내용은 특정 키를 기준으로 PHP에서 다차원 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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