PHP에서 배열에 포함된 null 값을 제거하려면 내장 함수인 array_filter()를 사용하면 됩니다. 이 함수는 콜백 없이 호출될 경우 배열에서 false로 평가되는 모든 요소(null, 0, 빈 문자열 등)를 자동으로 걸러냅니다.
array_filter() 기본 사용법
예를 들어 다음과 같이 학생 정보가 담긴 연관 배열이 있다고 가정해 보겠습니다. 여기서 lastName 키의 값은 null입니다.
$studentDetails = array("firstName" => "John", "lastName" => null);
echo "원본 배열 = ";
print_r($studentDetails);
array_filter()를 적용해 null 값을 제거합니다.
$result = array_filter($studentDetails);
전체 예제 코드
<!DOCTYPE html>
<html>
<body>
<?php
$studentDetails = array("firstName" => "John", "lastName" => null);
echo "원본 배열 = ";
print_r($studentDetails);
$result = array_filter($studentDetails);
echo "</br>";
echo "null 제거 후 결과 = ";
print_r($result);
?>
</body>
</html>
실행 결과
원본 배열 = Array ( [firstName] => John [lastName] => ) null 제거 후 결과 = Array ( [firstName] => John )
주의할 점
array_filter()는 콜백 함수를 지정하지 않으면 false로 평가되는 모든 값(null뿐 아니라 0, "0", 빈 문자열, 빈 배열 등)을 함께 제거한다는 점에 유의해야 합니다. 만약 null 값만 정확히 제거하고 싶다면 콜백 함수를 직접 지정하는 것이 좋습니다.
$result = array_filter($studentDetails, function($value) {
return !is_null($value);
});
이처럼 PHP에서는 array_filter() 하나만으로도 간단하게 배열의 불필요한 값을 정리할 수 있으며, 상황에 맞게 콜백을 조합하면 더욱 정교한 필터링이 가능합니다.