Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 배열이 비어 있는지 확인하는 방법 완벽 정리

PHP로 개발을 하다 보면 배열에 데이터가 들어 있는지, 아니면 비어 있는지 확인해야 하는 경우가 자주 발생합니다. 예를 들어 폼에서 전달된 값이나 데이터베이스 조회 결과를 처리하기 전에 배열이 비어 있는지 먼저 검사하면 불필요한 오류를 예방할 수 있습니다.

PHP에서는 크게 두 가지 방법으로 배열의 빈 상태를 확인할 수 있습니다. 바로 empty() 함수와 count() 함수입니다. 각각의 사용법을 예제와 함께 살펴보겠습니다.

방법 1: empty() 함수 사용하기

empty() 함수는 변수가 비어 있는지 검사하는 가장 간단하고 직관적인 방법입니다. 배열뿐만 아니라 문자열, 숫자 등 다양한 타입에도 사용할 수 있으며, 배열의 요소가 하나도 없으면 true를 반환합니다.

예제

<?php
   $arr = array( "p"=>"150", "q"=>"100", "r"=>"120", "s"=>"110");
   if (empty($arr)) {
      echo "비어 있는 배열입니다...";
   }
   else {
      echo "배열이 비어 있지 않습니다...";
   }
?>

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

배열이 비어 있지 않습니다...

위 예제의 배열에는 "p", "q", "r", "s" 네 개의 키-값 쌍이 존재하므로 empty($arr)false를 반환하고, else 블록의 문장이 실행됩니다.

방법 2: count() 함수 사용하기

count() 함수는 배열에 포함된 요소의 개수를 반환합니다. 따라서 반환값이 0이면 배열이 비어 있다고 판단할 수 있습니다.

예제

<?php
   $arr = array( "p"=>"150", "q"=>"100", "r"=>"120", "s"=>"110");
   if (count($arr) == 0) {
      echo "비어 있는 배열입니다...";
   }
   else {
      echo "배열이 비어 있지 않습니다...";
   }
?>

실행 결과

위 코드 역시 동일하게 다음 결과가 출력됩니다.

배열이 비어 있지 않습니다...

이 배열은 요소가 4개이므로 count($arr)는 4를 반환하고, 0과 같지 않기 때문에 else 블록이 실행됩니다.

empty()와 count() 중 어떤 것을 사용해야 할까?

두 방법 모두 배열의 빈 여부를 정확하게 판단하지만, 상황에 따라 적합한 선택이 달라질 수 있습니다.

  • empty() 함수: 코드가 간결하고 가독성이 좋아 일반적으로 권장되는 방식입니다. 다만 변수가 아예 선언되지 않은 경우에도 오류 없이 true를 반환한다는 점을 기억해야 합니다.
  • count() 함수: 배열의 요소 개수 자체가 필요한 로직이라면 이 방법이 더 유용합니다. 요소 수를 조건으로 함께 활용할 때 특히 편리합니다.

참고로 PHP 5.5 이상에서는 count() 대신 성능상 이점이 있는 sizeof()도 사용할 수 있으며, 이는 count()의 별칭(alias)입니다. 프로젝트의 코딩 컨벤션에 맞춰 일관성 있게 사용하는 것이 좋습니다.