Cómo crear un array con determinados valores de fecha en php
Con el código siguiente logro crear un array :
$cadenafechainicio="2021-01-01";
$cadenafechafin="2021-12-31";
$fechainicio = DateTime::createFromFormat($format, $cadenafechainicio);
$fechafin = DateTime::createFromFormat($format, $cadenafechafin);
$fechaintervalo = new DateInterval('P1D');
$fechainicio = new DateTime('first day of January');
$fechafin = new DateTime('last day of February');
$fechaintervalo1 = new DateInterval('P1D');
$dias = new DatePeriod($fechainicio, $fechaintervalo1, $fechafin);
foreach ($dias as $dia) {
// Asignamos un número por cada día de la semana 0-domingo y 6-sábado
$diasemana = $dia->format('w');
// Sólo imprime si es viernes, sábado o domingo
if ($diasemana !== '1' &&
$diasemana !== '2' &&
$diasemana !== '3' &&
$diasemana !== '4'
) {
array_push($array, $dia->format('d-m-Y'));
} //FIN del if
} //FIN del foreach
Array al que luego utilizo llamando $array[ ].
Hasta aquí bien, pero este no es el efecto que intento conseguir, quisiera saber cómo crear un array en el que el ranto de fechas indicado le asigne como clave el número de mes, y como valor el día, de forma que hayan tantas claves como meses existan en el intervalo de fechas, y a cada mes se le asignen tantos valores de fecha como días tenga el mes, de forma que luego llamo el array así $array[3][2] =mes de marzo, según día del mes, con la fecha en formato 'd-m-Y'.
He intentado muchas cosas a partir del código anterior, pero no lo consigo, ¿alguna ayudita?