>백엔드 개발 >PHP 문제 >PHP에서 2차원 배열을 정렬하는 방법

PHP에서 2차원 배열을 정렬하는 방법

PHPz
PHPz원래의
2023-04-17 16:37:235155검색

개발 중에는 더 나은 표현과 사용을 위해 데이터를 정렬해야 하는 경우가 많습니다. 2차원 배열의 경우 특정 데이터 필드에 따라 정렬이 수행될 수 있습니다. 이 기사에서는 PHP를 사용하여 2차원 배열을 정렬하는 방법을 소개합니다.

1. 2차원 배열을 정렬하려면 sort() 함수를 사용하세요

sort()는 배열의 값을 오름차순으로 정렬할 수 있는 PHP 내장 함수입니다. 2차원 배열을 정렬할 때 sort() 함수는 기본적으로 배열의 첫 번째 필드를 기준으로 정렬합니다. 예를 들어, 2차원 배열이 있습니다:

$arr = array(
     array('id'=>2,'name'=>'li', 'age'=>20),
     array('id'=>1,'name'=>'zhang', 'age'=>22),
     array('id'=>3,'name'=>'wang', 'age'=>18)
);

sort() 함수를 사용하여 id 필드를 기준으로 정렬할 수 있습니다.

sort($arr);
print_r($arr);

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

Array
(
    [0] => Array
        (
            [age] => 18
            [id] => 3
            [name] => wang
        )

    [1] => Array
        (
            [age] => 20
            [id] => 2
            [name] => li
        )

    [2] => Array
        (
            [age] => 22
            [id] => 1
            [name] => zhang
        )

)

ID를 기준으로 정렬한 후의 결과를 볼 수 있습니다. 필드에서는 요소가 오름차순으로 정렬됩니다.

2. 2차원 배열을 정렬하려면 usort() 함수를 사용하세요.

sort() 함수는 배열의 첫 번째 필드로만 정렬할 수 있습니다. 다른 필드를 기준으로 정렬하려면 usort를 사용해야 합니다. () 기능. usort() 함수는 정렬 규칙을 지정하기 위해 사용자 정의 콜백 함수를 전달해야 합니다. 예를 들어, 연령 필드를 기준으로 정렬하려고 합니다.

function cmp($a, $b)
{
    if ($a['age'] == $b['age']) {
        return 0;
    }
    return ($a['age'] <$ b[&#39;age&#39;]) ? -1 : 1;
}

usort($arr, "cmp");
print_r($arr);

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

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => wang
            [age] => 18
        )

    [1] => Array
        (
            [id] => 2
            [name] => li
            [age] => 20
        )

    [2] => Array
        (
            [id] => 1
            [name] => zhang
            [age] => 22
        )

)

연령 필드를 기준으로 정렬한 후 배열의 요소가 연령의 오름차순으로 정렬되는 것을 볼 수 있습니다.

3. array_multisort() 함수를 사용하여 2차원 배열을 정렬하세요.

array_multisort() 함수는 여러 조건에 따라 2차원 배열을 정렬할 수 있는 매우 강력한 정렬 함수입니다. 여러 필드를 기준으로 정렬하려면 array_multisort() 함수를 사용할 수 있습니다. 예를 들어, 나이 필드를 기준으로 먼저 정렬하려고 하면 ID를 기준으로 정렬합니다.

$ages = array();
$ids = array();
foreach ($arr as $key => $value) {
    $ages[$key] = $value['age'];
    $ids[$key] = $value['id'];
}
array_multisort($ages, SORT_ASC, $ids, SORT_ASC, $arr);

print_r($arr);

출력 결과는

Array
(
    [0] => Array
        (
            [id] => 3
            [name] => wang
            [age] => 18
        )

    [1] => Array
        (
            [id] => 2
            [name] => li
            [age] => 20
        )

    [2] => Array
        (
            [id] => 1
            [name] => zhang
            [age] => 22
        )

)

연령 필드를 기준으로 정렬한 후 다음과 같습니다. id 필드에서 배열의 요소는 나이의 오름차순으로 정렬됩니다. 나이가 같으면 id를 기준으로 오름차순으로 정렬합니다.

요약:

이 글에서는 sort() 함수, usort() 함수, array_multisort() 함수를 사용하여 2차원 배열을 정렬하는 세 가지 방법을 소개합니다. 개발 중에 어떤 방법을 선택할지는 특정 요구 사항에 따라 달라집니다. 이 기사가 모든 사람에게 도움이 되기를 바랍니다.

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

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