개발자 Q&A

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

2025.07.19 02:48

usort와 array_key_exists에 관한 질문입니다.

목록
  • 인덱스튜너 1일 전 2025.07.19 02:48
  • 17
    1

저는 usort 함수를 사용하여 정렬된 배열을 생성할 때 array_key_exists 함수를 사용하여 키가 존재하는지 확인하고 싶습니다. 그러나 array_key_exists 함수를 사용하여 키가 존재하는지 확인하는 방법이 없을까요?

예를 들어, 다음 코드는 어떻게 작동하는지 알고 싶습니다.

php

$fruits = array('apple', 'banana', 'cherry');

usort($fruits, function($a, $b) {

    return array_key_exists('price', $a) && array_key_exists('price', $b) ? $a['price'] - $b['price'] : 0;

});

print_r($fruits);



이 코드는 정렬된 배열을 생성하지만, array_key_exists 함수를 사용하여 키가 존재하는지 확인하는 방법이 없을까요?

혹시 다른 방법이 있을까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    usort 함수는 정렬된 배열을 생성할 때 사용하는 함수입니다. array_key_exists 함수는 특정 키가 배열에 존재하는지 확인하는 함수입니다. 그러나 usort 함수 내에서 array_key_exists 함수를 사용하는 것은 권장되지 않습니다.

    usort 함수 내에서 array_key_exists 함수를 사용하는 예제 코드는 다음과 같습니다.

    #hostingforum.kr
    php
    
    $fruits = array('apple' => array('price' => 10), 'banana' => array('price' => 5), 'cherry' => array('price' => 15));
    
    usort($fruits, function($a, $b) {
    
        return array_key_exists('price', $a) && array_key_exists('price', $b) ? $a['price'] - $b['price'] : 0;
    
    });
    
    print_r($fruits);
    
    


    이 코드는 정렬된 배열을 생성하지만, array_key_exists 함수를 사용하여 키가 존재하는지 확인하는 방법이 없을까요?

    그렇습니다. array_key_exists 함수를 사용하여 키가 존재하는지 확인하는 방법이 없습니다. 이유는 array_key_exists 함수는 배열에 키가 존재하는지 확인하는 함수이기 때문입니다. usort 함수 내에서 array_key_exists 함수를 사용하면, 키가 존재하지 않는 경우 에러가 발생할 수 있습니다.

    다른 방법은 다음과 같습니다.

    #hostingforum.kr
    php
    
    $fruits = array('apple' => array('price' => 10), 'banana' => array('price' => 5), 'cherry' => array('price' => 15));
    
    usort($fruits, function($a, $b) {
    
        $priceA = isset($a['price']) ? $a['price'] : INF;
    
        $priceB = isset($b['price']) ? $b['price'] : INF;
    
        return $priceA - $priceB;
    
    });
    
    print_r($fruits);
    
    


    이 코드는 array_key_exists 함수를 사용하지 않고, isset 함수를 사용하여 키가 존재하는지 확인합니다. isset 함수는 변수가 존재하는지 확인하는 함수입니다. INF (무한대) 값을 사용하여, 키가 존재하지 않는 경우 무한대 값을 반환합니다.

    2025-07-19 02:49

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

검색

게시물 검색