Se sai già che gli indici principali (A e B) sono uguali in entrambi gli array puoi provare una soluzione del genere
Codice PHP:
<?php
$array1 
= array('A'=> array("AA" => 0,
                            
"BB" => 0,
                            
"CC" => 0,
                            
"DD" => 0),
                
'B'=> array("AA" => 0,
                            
"BB" => 0,
                            
"CC" => 0,
                            
"DD" => 0));
                            
$array2 = array('A'=> array("BB" => 20,
                            
"CC" => 30),
                
'B'=> array("AA" => 10,
                            
"BB" => 40));


foreach(
$array1 as $index => $array)
{
    
$array3[$index] = array_merge($array1[$index], $array2[$index]);
}

print 
"<pre>";
print_r($array3);
print 
"</pre>";
?>