개발자 Q&A

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

2025.06.11 00:55

asort 함수 사용 중 문제가 발생했습니다.

목록
  • WebSocket광 오래 전 2025.06.11 00:55 인기
  • 303
    1
저는 PHP의 asort 함수를 사용하여 배열을 정렬하고 싶습니다.
하지만, asort 함수의 결과가 기대와 다르게 나와서 도움을 청합니다.
asort 함수는 키를 기준으로 정렬하는 기능이 있는 것처럼 보입니다.
하지만, 제가 사용한 코드에서 키가 중복되는 경우 정렬 결과가 예상과 다르게 나와서 문제가 발생했습니다.

어떻게 해야 키가 중복되는 경우에도 asort 함수를 사용하여 정렬할 수 있는지 알려주세요.

예를 들어, 다음과 같은 배열이 있다고 가정해 보겠습니다.
php

$arr = array('apple' => 5, 'banana' => 3, 'apple' => 7, 'orange' => 9);


이 배열을 asort 함수를 사용하여 정렬한 결과는 다음과 같이 나와야 합니다.
php

array('apple' => 7, 'banana' => 3, 'apple' => 5, 'orange' => 9)


하지만, 실제로 나온 결과는 다음과 같습니다.
php

array('apple' => 5, 'banana' => 3, 'apple' => 7, 'orange' => 9)


키가 중복되는 경우에 대해 어떻게 해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  오래 전



    PHP의 asort 함수는 키를 기준으로 정렬하는 기능이 있지만, 키가 중복되는 경우 정렬 결과가 예상과 다르게 나올 수 있습니다.

    이 문제를 해결하기 위해서는 키가 중복되지 않는 배열을 생성하거나, 중복된 키의 값을 변경하는 방법이 있습니다.

    키가 중복되지 않는 배열을 생성하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $arr = array('apple' => 5, 'banana' => 3, 'apple' => 7, 'orange' => 9);
    
    $arr = array_unique($arr, SORT_REGULAR);
    
    asort($arr);
    
    print_r($arr);
    
    


    중복된 키의 값을 변경하는 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $arr = array('apple' => 5, 'banana' => 3, 'apple' => 7, 'orange' => 9);
    
    foreach ($arr as $key => $value) {
    
        $arr[$key] = $key . '_' . $value;
    
    }
    
    asort($arr);
    
    foreach ($arr as $key => $value) {
    
        $arr[$key] = explode('_', $value);
    
    }
    
    print_r($arr);
    
    


    이러한 방법을 사용하면 키가 중복되지 않는 배열을 생성하거나, 중복된 키의 값을 변경하여 asort 함수를 사용하여 정렬할 수 있습니다.

    2025-06-11 00:56

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

검색

게시물 검색