개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.05 12:23

ksort 함수와 함께 사용할 때의 문제점

목록
  • TCP/IP장인 13일 전 2025.07.05 12:23 인기
  • 182
    1
제가 현재 PHP에서 associative array를 정렬하는 문제를 해결하고 있습니다.
ksort 함수를 사용하여 정렬을 시도했지만,
정렬된 결과가 기대했던 것과 다르게 나옵니다.
정렬 기준을 설정할 때 어떤 방식으로 처리하는지 알려주세요.

예를 들어,
php

$person = [

    '이름' => '홍길동',

    '나이' => 30,

    '직업' => '개발자'

];



ksort($person);



print_r($person);


이런 경우,
php

Array

(

    [이름] => 홍길동

    [나이] => 30

    [직업] => 개발자

)


와 같은 결과가 나옵니다.
하지만,
php

$person = [

    '이름' => '홍길동',

    '나이' => 30,

    '직업' => '개발자'

];



ksort($person, SORT_REGULAR);



print_r($person);


이런 경우,
php

Array

(

    [나이] => 30

    [이름] => 홍길동

    [직업] => 개발자

)


와 같은 결과가 나옵니다.
이러한 문제점을 해결하기 위해서는 어떻게 해야 하나요?
ksort 함수의 SORT_REGULAR 옵션을 사용하면 정렬 순서가 달라지는데,
이 옵션은 어떤 의미를 가지고 있나요?

정렬 기준을 설정할 때 어떤 방식으로 처리하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  13일 전



    ksort 함수는 PHP에서 associative array를 정렬하는 데 사용됩니다. 이 함수는 기본적으로 키를 정렬합니다.

    예를 들어, 다음과 같이 associative array를 정의하고 ksort 함수를 사용하면 키가 정렬된 결과가 나옵니다.

    #hostingforum.kr
    php
    
    $person = [
    
        '이름' => '홍길동',
    
        '나이' => 30,
    
        '직업' => '개발자'
    
    ];
    
    
    
    ksort($person);
    
    
    
    print_r($person);
    
    


    이 경우 결과는 다음과 같습니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [이름] => 홍길동
    
        [나이] => 30
    
        [직업] => 개발자
    
    )
    
    


    하지만, SORT_REGULAR 옵션을 사용하면 정렬 순서가 달라집니다. SORT_REGULAR 옵션은 기본적으로 정렬을 수행합니다.

    예를 들어, 다음과 같이 SORT_REGULAR 옵션을 사용하면 정렬된 결과가 나옵니다.

    #hostingforum.kr
    php
    
    $person = [
    
        '이름' => '홍길동',
    
        '나이' => 30,
    
        '직업' => '개발자'
    
    ];
    
    
    
    ksort($person, SORT_REGULAR);
    
    
    
    print_r($person);
    
    


    이 경우 결과는 다음과 같습니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [나이] => 30
    
        [이름] => 홍길동
    
        [직업] => 개발자
    
    )
    
    


    SORT_REGULAR 옵션은 기본적으로 정렬을 수행합니다. 이 옵션을 사용하면 키가 정렬된 결과가 나옵니다.

    하지만, SORT_NUMERIC 옵션을 사용하면 숫자 키가 정렬된 결과가 나옵니다. SORT_STRING 옵션을 사용하면 문자 키가 정렬된 결과가 나옵니다.

    예를 들어, 다음과 같이 SORT_NUMERIC 옵션을 사용하면 정렬된 결과가 나옵니다.

    #hostingforum.kr
    php
    
    $person = [
    
        '나이' => 30,
    
        '이름' => '홍길동',
    
        '직업' => '개발자'
    
    ];
    
    
    
    ksort($person, SORT_NUMERIC);
    
    
    
    print_r($person);
    
    


    이 경우 결과는 다음과 같습니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [나이] => 30
    
        [이름] => 홍길동
    
        [직업] => 개발자
    
    )
    
    


    예를 들어, 다음과 같이 SORT_STRING 옵션을 사용하면 정렬된 결과가 나옵니다.

    #hostingforum.kr
    php
    
    $person = [
    
        '이름' => '홍길동',
    
        '나이' => 30,
    
        '직업' => '개발자'
    
    ];
    
    
    
    ksort($person, SORT_STRING);
    
    
    
    print_r($person);
    
    


    이 경우 결과는 다음과 같습니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [이름] => 홍길동
    
        [나이] => 30
    
        [직업] => 개발자
    
    )
    
    


    따라서, SORT_REGULAR 옵션을 사용하면 기본적으로 정렬된 결과가 나옵니다. SORT_NUMERIC 옵션을 사용하면 숫자 키가 정렬된 결과가 나옵니다. SORT_STRING 옵션을 사용하면 문자 키가 정렬된 결과가 나옵니다.

    2025-07-05 12:24

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,083건 / 5 페이지

검색

게시물 검색