Contar valores duplicados em uma matriz bidimensional e exibir apenas valores exclusivos com a contagem

Estou trabalhando nisso há alguns dias ... e ainda não consegui alcançar os resultados desejados. Qualquer ajuda seria muito apreciada ... desde já agradeço.

Eu tenho uma matriz múltipla armazenada em $ log, que é exibida assim quando você imprime_r ($ log):

   Array ( [0] => Array ( [0] => Red [1] => Steel ) 
           [1] => Array ( [0] => Red [1] => Wood ) 
           [2] => Array ( [0] => Blue [1] => Wood ) 
         )

Atualmente eu tenho isso:

$counts = $log;
foreach ($log as $value) {
    foreach ($value as $k  => $v) {
        if (!isset($counts[$k])) $counts[$k] = array();
        if (!isset($counts[$k][$v])) $counts[$k][$v] = 0;
        $counts[$k][$v] += 1;
    }
}

foreach ($counts as $k => $v1) {
    foreach ($v1 as $v => $count) {
        echo "$v => $count <br />";
    }
}

Que exibe:

0 => Red 
1 => Steel 
Red => 2 
Blue => 1 
0 => Red 
1 => Wood 
Steel => 1 
Wood => 2 
0 => Blue 
1 => Wood  

Mas estou realmente procurando um resultado final de:

<h2>Colors</h2>
Red => 2
Blue => 1

<h2>Materials</h2>
Steel => 1
Wood => 2

questionAnswers(2)

yourAnswerToTheQuestion