Vale, ves, así mucho más sencillo.
Tu bucle for itera sobre el array encabezado, que tiene todos los valores del año, desde $i=1 hasta $i=12. Y luego llamas a los otros dos arrays pensando que también tienen todos los valores, ya que el isset lo haces sobre el valor del array en la posición $i. Obviamente, los arrays no tienen los mismos valores, luego no te vale así.
La idea es que tienes que buscar dentro del array por el contenido, no por el índice. Te pongo un ejemplo rápido que lo entiendes bien, para la primera iteración de tu bucle tienes lo siguiente:
for ($i = 1; $i <= count($encabezado); $i++) {
Código:
- $i = 1
- $encabezado[$i] = Array ( [0] => 01 [1] => 2020 )
- $encabezado[$i][0] = 01
- $encabezado[$i][1] = 2020
- $calcularA[$i] = Array ( [Ano_Semana] => 2020 [Mes_Semana] => 1 [Horas] => 344 )
- $calcularA[$i]['Ano_Semana'] = 2020
- $calcularA[$i]['Mes_Semana'] = 1
- $calcularA[$i]['Horas'] = 344
- $calcularP[$i] = Array ( [Ano_Semana] => 2020 [Mes_Semana] => 3 [Horas] => 112 )
- $calcularP[$i]['Ano_Semana'] = 2020
- $calcularP[$i]['Mes_Semana'] = 3
- $calcularP[$i]['Horas'] = 112
Luego, no puedes sumar las horas de $calcularP[$i]['Horas'] con las de $calcularA[$i]['Horas'], porque estás sumando las de Enero de calcularA con las de marzo de calcularP.
No sé si me sigues. Un saludo.