개발자 Q&A

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

2025.08.12 02:45

ArrayIterator::uksort 관련 질문

목록
  • HTTP전문가 2시간 전 2025.08.12 02:45 새글
  • 1
    1
제가 현재 ArrayIterator::uksort 메서드를 사용하여 정렬 중인데, 정렬 순서가 우선순위에 따라 달라지는 경우를 처리하는 방법을 모르겠습니다. 예를 들어, 우선순위가 높은 키를 먼저 정렬하고, 그 다음 우선순위가 낮은 키를 정렬하는 방법이 있을까요?

    댓글목록

    profile_image
    나우호스팅  2시간 전

    우선순위에 따라 정렬하는 경우, 우선순위를 반영하는 기준을 정의한 후, ArrayIterator::uksort 메서드를 사용하여 정렬할 수 있습니다.

    예를 들어, 우선순위를 정의한 배열을 다음과 같이 가정해 보겠습니다.

    #hostingforum.kr
    php
    
    $priority = [
    
        'high' => 1,
    
        'medium' => 2,
    
        'low' => 3
    
    ];
    
    


    그리고 우선순위를 반영하는 기준을 정의한 후, ArrayIterator::uksort 메서드를 사용하여 정렬할 수 있습니다.

    #hostingforum.kr
    php
    
    $iterator = new ArrayIterator([
    
        'low' => 'low',
    
        'high' => 'high',
    
        'medium' => 'medium'
    
    ]);
    
    
    
    uksort($iterator, function($a, $b) use ($priority) {
    
        if ($priority[$a] == $priority[$b]) {
    
            return strcmp($a, $b);
    
        } else {
    
            return $priority[$a] - $priority[$b];
    
        }
    
    });
    
    
    
    foreach ($iterator as $key => $value) {
    
        echo "$key: $valuen";
    
    }
    
    


    이 예제에서는 우선순위를 반영하는 기준을 정의한 후, ArrayIterator::uksort 메서드를 사용하여 정렬합니다. 우선순위가 같은 경우, 알파벳 순으로 정렬합니다. 우선순위가 다른 경우, 우선순위가 높은 키를 먼저 정렬합니다.

    2025-08-12 02:46

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

검색

게시물 검색