Essa array contem eventos que irão ocorrer dentro de um período. Cada evento tem uma frequência, ou seja, quantas vezes esse evento irá se repetir dentro desse período, por exemplo: o evento 4 irá se repetir quatro vezes. Cada evento também tem uma duração em horas, por exemplo o evento 4 tem duração total de seis horas, mas como ele irá se repetir três vezes, cada ocorrência do evento 4 terá duração de duas horas (esse tempo está registrado na chave 'tempo_de_duracao_unitário').
O que eu preciso é de uma lógica que faça uma distribuição das ocorrências de cada evento de maneira balanceada. Ou seja, eu gostaria de uma lógica que retornasse um array mais ou menos assim:
Observe que ouve uma distribuição de forma que cada ocorrência do mesmo evento ficasse espaçada de uma forma balanceada. Por exemplo, cada ocorrência do 'evento 4', que se repetiu 3 vezes, ficou igualmente espaçado entre dois outros eventos, o mesmo ocorreu para o evento 3, que se repetiu 2 vezes,
Pergunta
ksmachado
Prezados!
eu tenho a seguinte array:
$eventos = array( array('nome' => 'evento 1' , 'frequencia' => 1, 'tempo_de_duracao_total' => 2, 'tempo_de_duracao_unitaria' => 2), array('nome' => 'evento 2' , 'frequencia' => 1, 'tempo_de_duracao_total' => 1, 'tempo_de_duracao_unitaria' => 1), array('nome' => 'evento 3' , 'frequencia' => 2, 'tempo_de_duracao_total' => 4, 'tempo_de_duracao_unitaria' => 2), array('nome' => 'evento 4' , 'frequencia' => 3, 'tempo_de_duracao_total' => 6, 'tempo_de_duracao_unitaria' => 2), array('nome' => 'evento 5' , 'frequencia' => 1, 'tempo_de_duracao_total' => 2, 'tempo_de_duracao_unitaria' => 2), );
Essa array contem eventos que irão ocorrer dentro de um período. Cada evento tem uma frequência, ou seja, quantas vezes esse evento irá se repetir dentro desse período, por exemplo: o evento 4 irá se repetir quatro vezes. Cada evento também tem uma duração em horas, por exemplo o evento 4 tem duração total de seis horas, mas como ele irá se repetir três vezes, cada ocorrência do evento 4 terá duração de duas horas (esse tempo está registrado na chave 'tempo_de_duracao_unitário').
O que eu preciso é de uma lógica que faça uma distribuição das ocorrências de cada evento de maneira balanceada. Ou seja, eu gostaria de uma lógica que retornasse um array mais ou menos assim:
$eventosDistribuidos = array( 'evento 1', 'evento 4', 'evento 3', 'evento 2', 'evento 4', 'evento 3', 'evento 5', 'evento 4', );
Observe que ouve uma distribuição de forma que cada ocorrência do mesmo evento ficasse espaçada de uma forma balanceada. Por exemplo, cada ocorrência do 'evento 4', que se repetiu 3 vezes, ficou igualmente espaçado entre dois outros eventos, o mesmo ocorreu para o evento 3, que se repetiu 2 vezes,
Bem, era isso, desde já agradeço!
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.