Menu
CoddyTech

월별로 이벤트 필터링하기

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

challenge icon

챌린지

쉬움

세 개의 입력을 받게 됩니다: 이벤트 배열을 나타내는 JSON 문자열, 오늘 날짜를 나타내는 YYYY-MM-DD 형식의 날짜 문자열, 그리고 필터링할 월 번호(1-12)입니다.

첫 번째 입력은 다음과 같은 형식의 JSON 문자열입니다: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"},{"name":"Workshop","date":"2024-04-25","location":"Library"}]

두 번째 입력은 다음과 같은 형식의 날짜 문자열입니다: 2024-04-01

세 번째 입력은 다음과 같은 형식의 월 번호입니다: 4

세 입력을 모두 읽고 JSON 문자열을 이벤트 배열로 디코딩하세요. 다음 두 가지 조건을 모두 충족하는 이벤트만 포함하도록 이벤트를 필터링하십시오:

  • 이벤트 날짜가 오늘 날짜보다 크거나 같습니다 (예정된 이벤트만 해당)
  • 이벤트가 지정된 월에 발생합니다

DateTime 객체를 사용하여 날짜를 비교하고, "n" 형식 문자와 함께 format() 메서드를 사용하여 각 이벤트 날짜에서 월을 추출하십시오 (이 형식 문자는 앞에 0이 없는 숫자로 월을 반환합니다).

필터링 후, 일치하는 각 이벤트를 다음 형식으로 출력하십시오:

Event in month [month]: [name] on [date] at [location]

각 이벤트를 배열에 나타나는 순서대로 별도의 줄에 출력하십시오. 두 기준을 모두 충족하는 이벤트가 없으면 아무것도 출력하지 마십시오.

입력 형식:

  • 첫 번째 줄: name, date, location 키를 가진 이벤트 배열을 나타내는 JSON 문자열
  • 두 번째 줄: 오늘 날짜를 나타내는 YYYY-MM-DD 형식의 날짜 문자열 (예: 2024-04-01)
  • 세 번째 줄: 1에서 12 사이의 월 번호 (예: 4월의 경우 4)

예상 출력: 예정된 이벤트이면서 지정된 월에 속하는 각 이벤트를 다음 형식으로 별도의 줄에 출력합니다: Event in month [month]: [name] on [date] at [location]

직접 해보기

<?php
// 입력 읽기
$jsonInput = trim(fgets(STDIN));
$todayDate = trim(fgets(STDIN));
$monthNumber = intval(trim(fgets(STDIN)));

// JSON을 배열로 디코딩
$events = (array)json_decode($jsonInput, true);

// TODO: 아래에 코드를 작성하세요
// 다가오는 이벤트 중 지정된 월에 해당하는 이벤트를 필터링합니다
// 날짜 비교를 위해 DateTime 객체를 사용하세요
// 일치하는 각 이벤트를 요구되는 형식으로 출력하세요

?>

논리 & 흐름의 모든 레슨

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