Listar próximos eventos
Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 61 de 68.
Desafío
FácilRecibirás dos entradas: una cadena JSON que representa el arreglo de eventos existentes y una cadena de fecha en formato YYYY-MM-DD que representa la fecha de hoy.
La primera entrada será una cadena JSON en este formato: [{"name":"Team Meeting","date":"2024-04-15","location":"Office"},{"name":"Conference","date":"2024-05-20","location":"Convention Center"},{"name":"Workshop","date":"2024-03-10","location":"Library"}]
La segunda entrada será una cadena de fecha en este formato: 2024-04-01
Lee ambas entradas y decodifica la cadena JSON en un arreglo de eventos. Crea dos objetos DateTime: uno para la fecha de hoy (usando la segunda entrada) y uno para la fecha de cada evento a medida que iteras a través de los eventos.
Filtra y muestra solo los eventos próximos: eventos cuya fecha sea mayor o igual a la fecha de hoy. Para cada evento próximo, imprímelo en el siguiente formato:
Upcoming: [name] on [date] at [location]
Imprime cada evento próximo en una línea separada, en el orden en que aparecen en el arreglo. Si la fecha de un evento es anterior a la fecha de hoy, no lo imprimas.
Formato de entrada:
- Primera línea: Una cadena JSON que representa el arreglo de eventos con las claves
name,dateylocation - Segunda línea: Una cadena de fecha en formato YYYY-MM-DD que representa la fecha de hoy (ejemplo:
2024-04-01)
Salida esperada: Cada evento próximo impreso en una línea separada en el formato: Upcoming: [name] on [date] at [location]
Pruébalo tú mismo
<?php
// Leer la cadena JSON de eventos
$eventsJson = fgets(STDIN);
$events = (array)json_decode($eventsJson, true);
// Leer la fecha de hoy
$todayDate = trim(fgets(STDIN));
// TODO: Escribe tu código a continuación
// Crear un objeto DateTime para la fecha de hoy
// Recorrer los eventos y comparar las fechas
// Imprimir los próximos eventos en el formato requerido
?>Todas las lecciones de Lógica y Flujo
1Funciones avanzadas
Funciones anónimasClosures y 'use'Funciones de flechaFunciones callbackUso de 'call_user_func'Funciones variablesPaso por referenciaFunciones recursivasResumen: Miscelánea de funciones4Arreglos multidimensionales
Crear un arreglo 2DAcceder a elementos de un arreglo 2DModificar elementos de un arreglo 2DIterar con bucles anidadosArreglos asociativos 2DResumen: Ejercicio de cuadrícula simple2Manipulación avanzada de arrays
Agregar con 'array_push'Eliminar con 'array_pop'Agregar con 'array_unshift'Eliminar con 'array_shift'Fusionar arrays indexadosFusionar arrays asociativosExtraer con 'array_slice'Valores con 'in_array'Claves con 'array_search'Resumen: Ejercicio de Playlist3Ordenar Arrays
Ordenar arrays indexados de forma ascendenteOrdenar arrays indexados de forma descendenteOrdenar arrays asociativos por valorOrdenar arrays asociativos por claveOrdenación por orden naturalOrdenación personalizada con 'usort'Resumen: Ordenar tablas de clasificación6Funciones de array de orden superior
Transformación con 'array_map''array_map' con funciones personalizadasFiltrado con 'array_filter''array_filter' con funciones personalizadasReducción con 'array_reduce'Recorrido con 'array_walk'Resumen: Procesamiento de datos9Planificador de eventos
Datos del eventoAgregar un nuevo evento