Menu
Coddy logo textTech

'array_filter'로 필터링하기

Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨. 68개 중 41번째.

array_filter() 함수는 특정 기준을 충족하는 요소만 포함하는 새 배열을 생성하도록 설계되었습니다. 모든 요소를 변환하는 array_map()과 달리, array_filter()는 테스트를 통과하는지 여부에 따라 요소를 선택적으로 유지합니다.

콜백 함수 없이 사용하면 array_filter()는 array에서 모든 "empty" values를 자동으로 제거합니다. PHP는 여러 values를 empty로 간주합니다: false, null, 0, 빈 문자열 "", 그리고 빈 array입니다.

<?php
$mixedData = ["hello", 0, "world", false, null, "PHP", ""];
$cleanedData = array_filter($mixedData);
// 결과: ["hello", "world", "PHP"]
?>

이 동작은 데이터 배열을 정리할 때 array_filter()를 매우 유용하게 만듭니다. 원래 배열은 변경되지 않으며, 의미 있는 값만 포함된 새로운 배열을 얻습니다. 이는 사용자 입력을 처리하거나 원치 않는 빈 값이 포함될 수 있는 데이터로 작업할 때 특히 유용합니다.

challenge icon

챌린지

쉬움

다양한 데이터 유형(숫자, 빈 문자열, 0, 텍스트 응답 등)을 포함하는 쉼표로 구분된 설문 응답 목록인 하나의 input을 받습니다. input 형식은 yes,0,,no,5,,true,false,answer입니다.

input을 읽고, 쉼표로 구분된 values를 array로 변환한 다음, 콜백 함수 없이 array_filter()를 사용하여 모든 empty 값을 제거하고, 남은 각 value를 나타나는 순서대로 별도의 줄에 print하세요.

콜백 없이 array_filter()를 사용하면 PHP가 empty로 간주하는 값인 false, null, 0, 빈 문자열 "", 빈 array가 자동으로 제거된다는 점을 기억하세요.

input 형식: 쉼표로 구분된 values가 포함된 한 줄(예: yes,0,,no,5,,true,false,answer)

예상 출력: filtered array에 남은 각 non-empty value를 나타나는 순서대로 별도의 줄에 print

직접 해보기

<?php
// 입력 읽기
$input = trim(fgets(STDIN));

// 쉼표로 구분된 값을 배열로 변환
$responses = explode(',', $input);

// TODO: 아래에 코드를 작성하세요
// array_filter()를 사용하여 빈 값을 제거하고 남은 각 값을 출력


?>
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리 & 흐름의 모든 레슨

직접 연습해 보세요: 온라인 PHP 컴파일러