PHP에서 주어진 키의 값으로 연관 배열 배열을 정렬하는 방법

Minahil Noor 2023년1월30일
  1. array_multisort()함수를 사용하여 PHP에서 주어진 키 값으로 연관 배열 배열 정렬
  2. usort()함수를 사용하여 PHP에서 주어진 키 값으로 연관 배열 배열 정렬
PHP에서 주어진 키의 값으로 연관 배열 배열을 정렬하는 방법

이 기사에서는 PHP에서 주어진 키의 값으로 연관 배열의 ‘배열’을 정렬하는 방법을 소개합니다.

  • array_multisort()함수 사용
  • usort()함수 사용

array_multisort()함수를 사용하여 PHP에서 주어진 키 값으로 연관 배열 배열 정렬

내장 함수 array_multisort()를 사용하여 주어진 키의 값으로 연관 배열의 배열을 정렬 할 수 있습니다. 한 번에 여러 배열을 정렬하거나 다차원 배열을 정렬 할 수 있습니다. 이 함수를 사용하기위한 올바른 구문은 다음과 같습니다.

str_replace($arrayName, $sort_order, $sort_flags);

내장 함수 array_multisort()에는 세 개의 매개 변수가 있습니다. 매개 변수의 세부 사항은 다음과 같습니다

매개 변수 기술
$arrayName 필수 우리가 분류하고 싶은 ‘배열’입니다.
$sort_order 선택 과목 배열을 정렬 할 순서를 지정합니다. 오름차순의 경우 SORT_ASC, 내림차순의 경우 SORT_DESC가 될 수 있습니다. 기본값은 SORT_ASC입니다.
$sort_flags 선택 과목 정렬 옵션을 지정합니다. 여기에서 읽을 수 있습니다.

이 함수는 성공하면 TRUE를 반환합니다. 그렇지 않으면 FALSE를 반환합니다.

아래 프로그램은 array_multisort()함수를 사용하여 주어진 키의 값으로 연관 배열의 배열을 정렬하는 방법을 보여줍니다.

<?php 
$result = array(

   array("firstname"=>"Olivia", "marks"=>85),
   array("firstname"=>"Jacob", "marks"=>60),
   array("firstname"=>"Henry", "marks"=>100),
   array("firstname"=>"Lili", "marks"=>40),
   array("firstname"=>"Stefan", "marks"=>5),
   array("firstname"=>"Bonnie", "marks"=>97),
);
$marks = array();
foreach ($result as $key => $row)
{
    $marks[$key] = $row['marks'];
    
}
array_multisort($marks, SORT_DESC, $result);
print_r($result);  
?> 

원래 배열의 마크를 포함하는 배열$marks를 만들었습니다. 그 후 array_multisort()함수를 사용하여$result 배열을 기준으로$marks 배열을 정렬했습니다. 출력은 정렬 된$result 배열입니다.

출력:

Array
(
    [0] => Array
        (
            [firstname] => Henry
            [marks] => 100
        )

    [1] => Array
        (
            [firstname] => Bonnie
            [marks] => 97
        )

    [2] => Array
        (
            [firstname] => Olivia
            [marks] => 85
        )

    [3] => Array
        (
            [firstname] => Jacob
            [marks] => 60
        )

    [4] => Array
        (
            [firstname] => Lili
            [marks] => 40
        )

    [5] => Array
        (
            [firstname] => Stefan
            [marks] => 5
        )

)

array는 표시 키 값에 따라 내림차순으로 정렬됩니다.

usort()함수를 사용하여 PHP에서 주어진 키 값으로 연관 배열 배열 정렬

PHP에서는 usort() 함수를 사용하여 주어진 값으로 연관 배열의 배열을 정렬 할 수도 있습니다. 키. 이 함수는 사용자 정의 함수를 사용하여 배열을 정렬합니다. 이 함수를 사용하는 올바른 구문은 다음과 같습니다.

preg_replace($arrayName, $functionName);

usort()함수는 두 개의 매개 변수를받습니다. 매개 변수의 세부 사항은 다음과 같습니다

매개 변수 기술
$arrayName 필수 정렬하고 싶은 ‘배열’입니다.
$functionName 필수 전달 된 배열을 정렬하는 것은 사용자 정의 함수입니다.

성공하면 TRUE를, 그렇지 않으면 FALSE를 반환합니다. 배열을 정렬하는 프로그램은 다음과 같습니다.

<?php 
function DescSort($item1,$item2)
{
    if ($item1['marks'] == $item2['marks']) return 0;
    return ($item1['marks'] < $item2['marks']) ? 1 : -1;
}
$result = array(

   array("firstname"=>"Olivia", "marks"=>85),
   array("firstname"=>"Jacob", "marks"=>60),
   array("firstname"=>"Henry", "marks"=>100),
   array("firstname"=>"Lili", "marks"=>40),
   array("firstname"=>"Stefan", "marks"=>5),
   array("firstname"=>"Bonnie", "marks"=>97),
);
usort($result,'DescSort');
print_r($result);
?> 

출력:

Array
(
    [0] => Array
        (
            [firstname] => Henry
            [marks] => 100
        )

    [1] => Array
        (
            [firstname] => Bonnie
            [marks] => 97
        )

    [2] => Array
        (
            [firstname] => Olivia
            [marks] => 85
        )

    [3] => Array
        (
            [firstname] => Jacob
            [marks] => 60
        )

    [4] => Array
        (
            [firstname] => Lili
            [marks] => 40
        )

    [5] => Array
        (
            [firstname] => Stefan
            [marks] => 5
        )

)

오름차순 정렬의 경우 함수는 다음과 같습니다.

<?php 
function AscSort($item1,$item2)
{
    if ($item1['marks'] == $item2['marks']) return 0;
    return ($item1['marks'] > $item2['marks']) ? 1 : -1;
}
$result = array(

   array("firstname"=>"Olivia", "marks"=>85),
   array("firstname"=>"Jacob", "marks"=>60),
   array("firstname"=>"Henry", "marks"=>100),
   array("firstname"=>"Lili", "marks"=>40),
   array("firstname"=>"Stefan", "marks"=>5),
   array("firstname"=>"Bonnie", "marks"=>97),
);
usort($result,'AscSort');
print_r($result);
?> 

출력:

Array
(
    [0] => Array
        (
            [firstname] => Stefan
            [marks] => 5
        )

    [1] => Array
        (
            [firstname] => Lili
            [marks] => 40
        )

    [2] => Array
        (
            [firstname] => Jacob
            [marks] => 60
        )

    [3] => Array
        (
            [firstname] => Olivia
            [marks] => 85
        )

    [4] => Array
        (
            [firstname] => Bonnie
            [marks] => 97
        )

    [5] => Array
        (
            [firstname] => Henry
            [marks] => 100
        )

)

관련 문장 - PHP Array