PHP를 사용하여 다차원 배열 정렬

WBOY
풀어 주다: 2023-06-06 08:34:02
원래의
1676명이 탐색했습니다.

PHP 프로그래밍에서는 가격순 정렬, 알파벳순 정렬 등과 ​​같이 다양한 요구 사항을 충족하기 위해 다차원 배열을 정렬해야 하는 경우가 많습니다. 그러나 다차원 배열을 정렬하는 것은 1차원 배열보다 더 복잡합니다. 이 기사에서는 PHP를 사용하여 다차원 배열을 정렬하는 방법을 소개합니다.

  1. PHP의 정렬 기능

먼저 PHP의 정렬 기능을 이해해야 합니다: sort(), rsort(), asort(), arsort(), ksort(), krsort(), uksort() , usort (). 이러한 함수는 1차원 배열을 정렬하는 데 적합합니다. 다차원 배열을 정렬하려면 콜백 함수를 사용하여 배열을 정렬해야 합니다.

  1. 콜백 함수의 정의

콜백 함수란 다른 함수에서 매개변수로 전달되는 함수를 말합니다. PHP에서 콜백 함수는 일반적으로 배열 정렬, 필터링, 탐색 등에 사용됩니다. 익명 함수나 사용자 정의 이름을 가진 함수를 콜백 함수로 사용할 수 있습니다.

다음은 익명 함수를 콜백 함수로 사용하는 예입니다.

$array = array(
    array('price' => 45.50),
    array('price' => 15.00),
    array('price' => 20.15),
    array('price' => 25.00),
    array('price' => 90.10),
    array('price' => 9.99),
);

usort($array, function($a, $b) {
    if ($a['price'] == $b['price']) return 0;
    return ($a['price'] < $b['price']) ? -1 : 1;
});

print_r($array);
로그인 후 복사

출력은 다음과 같습니다.

Array (
    [0] => Array ( [price] => 9.99 )
    [1] => Array ( [price] => 15 )
    [2] => Array ( [price] => 20.15 )
    [3] => Array ( [price] => 25 )
    [4] => Array ( [price] => 45.5 )
    [5] => Array ( [price] => 90.1 )
)
로그인 후 복사
  1. 콜백 함수를 사용하여 다차원 배열 정렬

다차원 배열의 경우 콜백 함수 정의 배열 정렬 규칙을 사용해야 합니다. 콜백 함수에서 여러 정렬 조건을 정의하고 우선 순위에 따라 배열 요소의 값을 하나씩 비교하여 정렬 목적을 달성할 수 있습니다.

다음은 콜백 함수를 사용하여 다차원 배열을 정렬하는 예입니다.

$array = array(
    array('name' => 'John', 'age' => 25, 'score' => 80),
    array('name' => 'Mary', 'age' => 28, 'score' => 90),
    array('name' => 'Bob', 'age' => 20, 'score' => 95),
    array('name' => 'Jack', 'age' => 30, 'score' => 85),
    array('name' => 'Lisa', 'age' => 22, 'score' => 85),
);

// 按照年龄降序、分数升序、名字升序排序
usort($array, function($a, $b) {
    if ($a['age'] == $b['age']) {
        if ($a['score'] == $b['score']) {
            return strcmp($a['name'], $b['name']);
        } else {
            return ($a['score'] > $b['score']) ? 1 : -1;
        }
    } else {
        return ($a['age'] < $b['age']) ? 1 : -1;
    }
});

print_r($array);
로그인 후 복사

출력 결과는 다음과 같습니다.

Array (
    [0] => Array ( [name] => Mary [age] => 28 [score] => 90 )
    [1] => Array ( [name] => Jack [age] => 30 [score] => 85 )
    [2] => Array ( [name] => Lisa [age] => 22 [score] => 85 )
    [3] => Array ( [name] => John [age] => 25 [score] => 80 )
    [4] => Array ( [name] => Bob [age] => 20 [score] => 95 )
)
로그인 후 복사
  1. Summary

이 글에서는 PHP를 사용하여 다차원 배열 정렬을 구현하는 방법을 소개합니다. 먼저 정렬 함수를 이해하고 콜백 함수를 통해 다차원 배열을 정렬합니다. 실제 개발에서 정렬은 매우 일반적인 기능이며 다차원 배열을 정렬하면 다양한 요구 사항을 더 잘 충족할 수 있습니다.

위 내용은 PHP를 사용하여 다차원 배열 정렬의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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