XML na matriz associativa usando PHP

Alguém pode ajudar na conversão de dados de um documento XML em uma matriz associativa? Estou enfrentando problemas, uma vez que a estrutura XML é uma espécie de 3D e a matriz é mais uma estrutura 2D (perdoe minha falta de terminologia correta). Os elementos XML têm atributos, filhos e netos (mas nunca sei o nome deles), então imaginei que tentaria fazer da chave na matriz uma concatenação de cada nome filho / atributo e o valor igual a, bem, O valor que. O problema é que preciso do nome e do valor do atributo como parte da chave da matriz concatenada para torná-lo único ...

Por exemplo

<Computer id="1">   
    <OS>
        <Name>Linux</Name>
        <Age>Older than me</Age>
    </OS>
</Computer>
<Computer id="2">
    <OS>
        <Name>Windows</Name>
        <Age>Not so much</Age>
    </OS>
</Computer>

Deve idealmente dar:

[Computer-id-1-OS-Name] = 'Linux'
[Computer-id-1-OS-Age] = 'Older than me'
[Computer-id-2-OS-Name] = 'Windows'
[Computer-id-2-OS-Age] = 'Not so much'

Mas estou obtendo este resultado:

[Computer-id] = '1'
[Computer-OS-Name] = 'Linux'
[Computer-OS-Age] = 'Older than me'
[Computer-id] = '2'
[Computer-OS-Name] = 'Windows'
[Computer-OS-Age] = 'Not so much'

Para que a tecla [ID do computador] não seja exclusiva. Estou usando uma função recursiva para ler os valores, mas não consigo descobrir como obter o nome do atributo e o valor do atributo no nome das chaves subordinadas ... (A propósito, há uma boa razão para fazer isso tarefa aparentemente ilógica!) Qualquer ajuda seria muito apreciada ...

Aqui está a função que 'nivela' os dados XML após serem lidos em uma matriz multidimensional. Não tenho certeza se vou fazer isso da maneira certa!

function flattenArray ($array, $baseName = NULL)
{
    reset($array);
    while (list ($key, $value) = each($array)) {
        $outKey = $key . "-";
        if (is_array($value)) {
            flattenArray($value, $baseName . $outKey);
        } else {
            $finalKey = $baseName . rtrim($outKey, '-');
            $finalValue = $value;
            echo "$finalKey = $finalValue\n";
        }
    }
}

questionAnswers(5)

yourAnswerToTheQuestion