챌린지: 고유 아이템 필터링
Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨. 68개 중 68번째.
챌린지
쉬움중복된 항목이 포함될 수 있는 쉼표로 구분된 문자열 하나를 입력받습니다.
입력은 다음과 같은 형식의 문자열입니다: apple,banana,apple,orange,banana,grape,apple
입력 문자열을 읽고 이를 항목 배열로 분할하세요. array_filter()와 사용자 정의 콜백 함수를 사용하여 중복된 항목을 제거하고, 각 고유 항목의 첫 번째 발생만 유지하십시오.
이를 수행하기 위해, 이미 확인된 항목을 추적하는 콜백 함수를 만드세요. 콜백은 처음 발견된 항목에 대해서는 true를 반환하고, 중복된 항목에 대해서는 false를 반환해야 합니다. 콜백 외부의 변수를 사용하고 use (&$seen)을 통해 **참조에 의한 캡처(by reference)**를 수행하여 array_filter가 콜백을 호출할 때마다 업데이트가 유지되도록 할 수 있습니다.
필터링 후, 각 고유 항목을 원래 입력에 나타난 순서대로 별도의 줄에 출력하세요.
입력 형식:
- 쉼표로 구분된 항목들이 포함된 한 줄 (예:
apple,banana,apple,orange)
예상 출력: 각 고유 항목이 입력에 처음 나타난 순서대로 별도의 줄에 출력됨
직접 해보기
<?php
// 입력 읽기
$input = trim(fgets(STDIN));
// 입력을 배열로 분할
$items = explode(',', $input);
// TODO: 아래에 코드를 작성하세요
// 중복을 제거하기 위해 커스텀 콜백 함수와 함께 array_filter()를 사용하세요
// 각 고유 항목을 별도의 줄에 출력
?>논리 & 흐름의 모든 레슨
직접 연습해 보세요: 온라인 PHP 컴파일러