Obtendo dados do array unidirecional em ordem reversa

Eu tenho uma matriz como uma lista unidirecional:

array(
    'data1' => <some data>,
    'next' => array(
        'data2' => <some data>,
        'next' => array(
            'data3' => <some data>,
            'next' => array(
                'data4' => <some data>,
                'next' => array(
                    'data5' => <some data>,
                    'next' => ..... etc to data n
                );
            );
        );
    );
);

Eu preciso obter dados de dentro de matrizes na ordem inversa. (dados n, ..., dados 2, dados 1) Você conhece algum método legal para isso?

questionAnswers(5)

yourAnswerToTheQuestion