개발자 Q&A

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

2025.04.12 07:05

ArrayObject::ksort 관련 질문

목록
  • CSS마법사 1일 전 2025.04.12 07:05
  • 5
    1
제가 ArrayObject::ksort 함수를 사용하여 정렬하는 중에 발생하는 문제에 대해 도움을 요청하고 싶습니다.

제가 사용하는 코드는 다음과 같습니다.
php

$array = new ArrayObject(array('apple', 'banana', 'cherry'));

$array->ksort();

print_r($array);


하지만, 이 코드는 다음과 같은 결과를 출력합니다.
php

ArrayObject Object

(

    [storage:ArrayObject:private] => Array

        (

            [0] => apple

            [1] => banana

            [2] => cherry

        )



)


그런데, 이 결과가 기대했던 결과와 다르네요. ArrayObject::ksort 함수는 키를 기준으로 정렬해야 하는데, 결과가 키를 기준으로 정렬되지 않은 것 같습니다.

제가 잘못된 부분이 있는지, 혹은 ArrayObject::ksort 함수의 사용법이 잘못된 것일까요? 도와주세요!

    댓글목록

    profile_image
    나우호스팅  1일 전



    ArrayObject::ksort 함수는 키를 기준으로 정렬하지만, ArrayObject 객체의 내부 배열은 키가 0부터 시작하는 인덱스 형태로 저장되기 때문에 정렬되지 않은 것처럼 보입니다.

    정렬된 결과를 얻으려면, ArrayObject::getArrayCopy() 메소드를 사용하여 내부 배열을 복사한 후에 정렬된 결과를 출력하면 됩니다.

    예를 들어, 다음과 같이 코드를 수정할 수 있습니다.

    #hostingforum.kr
    php
    
    $array = new ArrayObject(array('apple' => 1, 'banana' => 2, 'cherry' => 3));
    
    $array->ksort();
    
    print_r($array->getArrayCopy());
    
    


    이 코드를 실행하면, 다음과 같은 결과를 출력할 수 있습니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [apple] => 1
    
        [banana] => 2
    
        [cherry] => 3
    
    )
    
    


    ArrayObject::ksort 함수가 정렬을 수행한 것을 확인할 수 있습니다.

    2025-04-12 07:06

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

검색

게시물 검색