개발자 Q&A

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

2025.06.11 06:32

ArrayObject::uksort 관련 질문

목록
  • Terraform광신도 1일 전 2025.06.11 06:32
  • 11
    1
제가 ArrayObject::uksort 함수를 사용하여 정렬을 하려고 하는데, 이해가 잘 안 가는 부분이 있습니다.

ArrayObject::uksort 함수는 사용법을 모르겠는데, 이 함수를 사용하여 ArrayObject를 정렬할 때, key를 기준으로 정렬을 하게 되나요?

또한, 이 함수는 정렬할 때, 기준을 설정할 수 있나요?

아래의 코드를 예로 들어서, ArrayObject::uksort 함수를 사용하여 ArrayObject를 정렬하는 방법을 알려주세요.

php

$array = new ArrayObject(array('apple' => 5, 'banana' => 3, 'cherry' => 1));

$array->uksort(function($a, $b) {

    return $a <=> $b;

});

print_r($array);



위의 코드를 실행하면, ArrayObject의 key가 정렬되지 않는데, 왜 그런가요?

ArrayObject::uksort 함수를 사용하여 ArrayObject를 정렬할 때, key가 정렬되지 않는 이유를 알려주세요.

    댓글목록

    profile_image
    나우호스팅  1일 전



    ArrayObject::uksort 함수는 ArrayObject의 key를 기준으로 정렬을 합니다. 이 함수는 정렬할 때 기준을 설정할 수 있습니다.

    ArrayObject::uksort 함수는 사용법이 다음과 같습니다.

    - 첫 번째 인자는 정렬 기준을 설정하는 함수입니다. 이 함수는 두 개의 인자를 받고, 두 인자 중에서 더 큰 값을 반환하면 첫 번째 인자가 더 큰 것으로 간주합니다.
    - 두 번째 인자는 정렬 순서를 설정하는 인자입니다. 이 인자는 SORT_REGULAR, SORT_NUMERIC, SORT_STRING, SORT_LOCALE_STRING, SORT_NATURAL, SORT_NATURAL_CASE, SORT_FLAG_CASE_LOCALE, SORT_FLAG_CASE_DEFAULT 중 하나를 지정할 수 있습니다.

    위의 코드를 실행하면 ArrayObject의 key가 정렬되지 않는 이유는, ArrayObject::uksort 함수의 두 번째 인자를 생략했기 때문입니다.

    ArrayObject::uksort 함수의 두 번째 인자를 생략하면 SORT_REGULAR이 기본값으로 설정됩니다. SORT_REGULAR은 정렬 기준을 기준으로 정렬을 하지만, key가 정렬되지 않습니다.

    따라서, ArrayObject::uksort 함수를 사용하여 ArrayObject를 정렬할 때, 두 번째 인자를 SORT_KEY로 설정해야 합니다.

    정확한 코드는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $array = new ArrayObject(array('apple' => 5, 'banana' => 3, 'cherry' => 1));
    
    $array->uksort(function($a, $b) {
    
        return $a <=> $b;
    
    }, SORT_KEY);
    
    print_r($array);
    
    


    위의 코드를 실행하면 ArrayObject의 key가 정렬됩니다.

    2025-06-11 06:33

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

검색

게시물 검색