Criar função que percorre os índices de um array trocando suas posições N vezes

Olá, tudo bem com vocês?

Então, gostaria que vocês me ajudassem a criar um código PHP que percorresse os elementos de um array trocando suas posições de maneira recursiva até a ocorrência de uma data, por exemplo.

Imagine o seguinte:

$equipe = [
1 => Huguinho,
2 => Zezinho,
3 => Luizinho,
4 => Mickey
];

A primeira vez que ela rodar o resultado é: 1, 2, 3, 4
A segunda vez que ela rodar o resultado é: 4, 1, 2, 3
A terceira vez que ela rodar o resultado é: 3, 4, 1, 2
A quarta vez que ela rodar o resultado é: 2, 3, 4, 1
A quinta vez que ela rodar o resultado é: 1, 2, 3, 4

Ou seja, as posições vão sendo alternadas 1 a 1, o que era 2 passa a ser 3, a que era 3 passa a ser 4, a quarta que era a ÚLTIMA posição passa a ser a 1 etc.

O ideal seria que houvesse uma data INÍCIO e uma data FIM para informar quantas vezes ela iria ser rodada.

Espero que eu tenha sido claro. Obrigado a todos e tudo de bom!!