> 백엔드 개발 > PHP 튜토리얼 > 여러 필드 값으로 PHP 배열을 정렬하는 방법은 무엇입니까?

여러 필드 값으로 PHP 배열을 정렬하는 방법은 무엇입니까?

Patricia Arquette
풀어 주다: 2024-12-15 05:26:12
원래의
879명이 탐색했습니다.

How to Sort a PHP Array by Multiple Field Values?

여러 필드 값으로 PHP 배열 정렬

PHP에서는 여러 값이 포함된 배열을 정렬하는 것이 까다로울 수 있지만 이를 달성하기 위한 몇 가지 접근 방식이 있습니다. . 일반적인 해결책 중 하나는 array_multisort() 함수를 사용하는 것입니다.

질문에 제공된 것과 같은 배열이 있다고 가정합니다.

Array ([
        [
            'destination' => 'Sydney',
            'airlines' => 'airline_1',
            'one_way_fare' => 100,
            'return_fare' => 300,
        ],
        [
            'destination' => 'Sydney',
            'airlines' => 'airline_2',
            'one_way_fare' => 150,
            'return_fare' => 350,
        ],
        [
            'destination' => 'Sydney',
            'airlines' => 'airline_3',
            'one_way_fare' => 180,
            'return_fare' => 380,
        ],
    ]
)
로그인 후 복사

return_fare 및 one_way_fare를 기준으로 이 배열을 정렬하려면 오름차순으로 배열하려면 다음과 같이 array_multisort()를 사용할 수 있습니다.

// Obtain a list of columns
foreach ($data as $key => $row) {
    $return_fare[$key]  = $row['return_fare'];
    $one_way_fare[$key] = $row['one_way_fare'];
}

// Sort the data with return_fare descending, one_way_fare ascending
array_multisort($data, $return_fare, SORT_ASC, $one_way_fare, SORT_ASC);
로그인 후 복사

이렇게 하면 배열이 정렬됩니다. return_fare의 오름차순으로, 그리고 동일한 return_fare 값 내에서는 one_way_fare의 오름차순으로 정렬됩니다.

또 다른 옵션은 여러 기준에 따라 정렬하기 위한 단순화된 구문을 제공하는 array_orderby() 함수를 사용하는 것입니다.

$sorted = array_orderby($data, 'return_fare', SORT_ASC, 'one_way_fare', SORT_ASC);
로그인 후 복사

루프를 방지하려면 array_column()(PHP에서 사용 가능)을 사용할 수도 있습니다. 5.5.0 이상) 원하는 열을 추출한 다음 해당 열에 대해 array_multisort()를 사용합니다.

array_multisort(
    array_column($data, 'return_fare'), SORT_ASC,
    array_column($data, 'one_way_fare'), SORT_ASC,
    $data
);
로그인 후 복사

위 내용은 여러 필드 값으로 PHP 배열을 정렬하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿