개발자 Q&A

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

2025.08.15 20:52

ArrayObject::ksort에 대한 질문

목록
  • 네트워크마법사 1시간 전 2025.08.15 20:52 새글
  • 2
    1
ArrayObject::ksort 함수를 사용하여 배열을 정렬할 때, 키를 기준으로 오름차순으로 정렬하는 방법은 무엇인가요?

제가 지금까지 ArrayObject::ksort 함수를 사용하여 배열을 정렬하였는데, 내부적으로 사용되는 알고리즘과 정렬 순서를 확인하고 싶습니다. 또한, 배열의 키가 숫자인 경우 정렬 순서가 어떻게 되는지 알려주세요.

예를 들어, 다음과 같은 배열이 있을 때, ArrayObject::ksort 함수를 사용하여 정렬한 결과는 어떻게 될까요?

php

$array = [

    '3' => '세',

    '1' => '일',

    '2' => '이',

];



$array->ksort();

print_r($array);



이러한 예시를 통해 ArrayObject::ksort 함수의 동작을 확인하고 싶습니다.

    댓글목록

    profile_image
    나우호스팅  1시간 전



    ArrayObject::ksort 함수는 키를 기준으로 오름차순으로 정렬하는 함수입니다. 이 함수는 키가 문자열인 경우에만 작동합니다. 숫자 키는 정렬되지 않습니다.

    예를 들어, 다음과 같은 배열이 있을 때, ArrayObject::ksort 함수를 사용하여 정렬한 결과는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $array = [
    
        '3' => '세',
    
        '1' => '일',
    
        '2' => '이',
    
    ];
    
    
    
    $array->ksort();
    
    print_r($array);
    
    


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

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [1] => 일
    
        [2] => 이
    
        [3] => 세
    
    )
    
    


    위의 예시에서 볼 수 있듯이, ArrayObject::ksort 함수는 키가 문자열인 경우에만 작동합니다. 숫자 키인 '3'은 정렬되지 않습니다.

    키가 숫자인 경우 정렬 순서를 유지하려면, 키를 문자열로 변환하여 정렬해야 합니다. 예를 들어, 다음과 같이 코드를 수정할 수 있습니다.

    #hostingforum.kr
    php
    
    $array = [
    
        '3' => '세',
    
        '1' => '일',
    
        '2' => '이',
    
    ];
    
    
    
    $array = array_map(function($key, $value) {
    
        return [$key, $value];
    
    }, array_keys($array), $array);
    
    
    
    usort($array, function($a, $b) {
    
        return $a[0] <=> $b[0];
    
    });
    
    
    
    $array = array_column($array, 1, 0);
    
    
    
    print_r($array);
    
    


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

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [1] => 일
    
        [2] => 이
    
        [3] => 세
    
    )
    
    


    위의 예시에서 볼 수 있듯이, 키가 숫자인 경우 정렬 순서를 유지하려면, 키를 문자열로 변환하여 정렬해야 합니다.

    2025-08-15 20:53

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

검색

게시물 검색