개발자 Q&A

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

2025.04.29 06:56

uasort 함수와 사용법에 대한 질문

목록
  • 코딩의신 17시간 전 2025.04.29 06:56 새글
  • 6
    1
저는 uasort 함수를 사용하여 정렬된 배열을 만들려고 합니다.

예를 들어, 아래와 같은 배열이 있다고 가정해 보겠습니다.

php

$data = array(

    array('이름' => '홍길동', '나이' => 20),

    array('이름' => '김철수', '나이' => 30),

    array('이름' => '박영희', '나이' => 25)

);



이 배열을 uasort 함수를 사용하여 '나이'를 기준으로 오름차순 정렬하려고 합니다.

하지만, uasort 함수의 사용법이 잘 이해되지 않습니다.

uasort 함수의 비교 함수에 '나이'를 어떻게 넣어야 하는지 알려주세요.

예를 들어, 아래와 같은 코드가 있으면, 어떤 식으로 비교 함수를 정의해야 하는지 알려주세요.

php

uasort($data, function($a, $b) {

    // 비교 함수를 정의해야 하는데, 어떻게 해야 하나요?

});



또한, 정렬된 배열을 어떻게 얻을 수 있는지 알려주세요.

정렬된 배열을 얻기 위해, uasort 함수의 결과를 어떻게 처리해야 하는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  17시간 전



    uasort 함수는 정렬된 배열을 반환하지 않습니다. 따라서, 정렬된 배열을 얻으려면, uasort 함수를 사용한 후 array_values 함수를 사용하여 배열의 키를 초기화해야 합니다.

    예를 들어, 다음과 같이 사용할 수 있습니다.

    #hostingforum.kr
    php
    
    $data = array(
    
        array('이름' => '홍길동', '나이' => 20),
    
        array('이름' => '김철수', '나이' => 30),
    
        array('이름' => '박영희', '나이' => 25)
    
    );
    
    
    
    uasort($data, function($a, $b) {
    
        return $a['나이'] - $b['나이'];
    
    });
    
    
    
    $data = array_values($data);
    
    
    
    print_r($data);
    
    


    이 코드는 다음과 같은 결과를 출력합니다.

    #hostingforum.kr
    php
    
    Array
    
    (
    
        [0] => Array
    
            (
    
                [이름] => 홍길동
    
                [나이] => 20
    
            )
    
    
    
        [1] => Array
    
            (
    
                [이름] => 박영희
    
                [나이] => 25
    
            )
    
    
    
        [2] => Array
    
            (
    
                [이름] => 김철수
    
                [나이] => 30
    
            )
    
    
    
    )
    
    


    uasort 함수의 비교 함수는 두 배열을 비교하여 정렬 순서를 결정합니다. 비교 함수는 두 배열을 비교하여 0보다 작은 경우, 두 배열의 순서를 바꾸지 않습니다. 0과 같은 경우, 두 배열의 순서를 바꾸지 않습니다. 0보다 큰 경우, 두 배열의 순서를 바꾸어 정렬 순서를 결정합니다.

    예를 들어, 위의 예시에서, 비교 함수는 다음과 같이 정의됩니다.

    #hostingforum.kr
    php
    
    return $a['나이'] - $b['나이'];
    
    


    이 비교 함수는 두 배열의 '나이' 필드를 비교하여 정렬 순서를 결정합니다.

    2025-04-29 06:57

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

검색

게시물 검색