월별로 이벤트 필터링하기
Coddy PHP 여정의 논리 & 흐름 섹션에 포함된 레슨. 68개 중 63번째.
챌린지
쉬움세 개의 입력을 받게 됩니다: 이벤트 배열을 나타내는 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 컴파일러