PHP - Converta array multidimensional para array 2D com chaves de notação de ponto

Há muitas dicas e exemplos de código disponíveis para acessar arrays PHP com notação de ponto, mas eu gostaria de fazer o contrário. Eu gostaria de ter uma matriz multidimensional como esta:

<code>$myArray = array(
    'key1' => 'value1',
    'key2' => array(
        'subkey' => 'subkeyval'
    ),
    'key3' => 'value3',
    'key4' => array(
        'subkey4' => array(
            'subsubkey4' => 'subsubkeyval4',
            'subsubkey5' => 'subsubkeyval5',
        ),
        'subkey5' => 'subkeyval5'
    )
);
</code>

E transforme isso em (provavelmente através de alguma função recursiva):

<code>$newArray = array(
    'key1'                    => 'value1',
    'key2.subkey'             => 'subkeyval',
    'key3'                    => 'value3',
    'key4.subkey4.subsubkey4' => 'subsubkeyval4',
    'key4.subkey5.subsubkey5' => 'subsubkeyval5',
    'key4.subkey5'            => 'subkeyval5'
);
</code>

questionAnswers(6)

yourAnswerToTheQuestion