Ir para conteúdo
Fórum Script Brasil
  • 0

script de ordenação de array


ksmachado

Pergunta

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

Até agora não há respostas para essa pergunta

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...