Ir para conteúdo
Fernando José

Dividir matérias na semana

Recommended Posts

Pessoal,


Estou tentando fazer um script para dividir as matérias de estudo da semana. Eu preciso preencher o numero total de horas livre na semana com as aulas e o que sobrar na última semana.

 

Alguém poderia me ajudar?

 

<?php

$numero_horas_semana = 15;
$numero_semanas      = 5;
$total_horas  = $numero_horas_semana * $numero_semanas;

// Total de aulas por matérias
// Cada aula = 1 hora
$materias['matematica'] = 20;
$materias['portugues'] = 10;
$materias['fisica'] = 25;
$materias['quimica'] = 8;
$materias['sociologia'] = 5;

$materias_total = 0;
foreach ($materias as $key => $value) {
	$materias_total += $value;
}

$semanas_necessarias = $materias_total / $numero_horas_semana;
$semanas_necessarias_arredondado = ceil($semanas_necessarias);

if($semanas_necessarias_arredondado < $numero_semanas)
{
	echo 'TEMPO INSUFICIENTE';
}
else
{
	for ($i = 1; $i <= $semanas_necessarias_arredondado; $i++) {

		echo '<h1>Semana '.$i.'</h1>';
		echo '<p>Nome da materia: X aulas</p>';
		echo '<p> </p>';
	}
}


echo '<p>Total Horas para estudo: '.$total_horas.'</p>';
echo '<p>Total de Matérias selecionadas: '.$materias_total.'</p>';
echo '<p>Semanas necessárias para estudo: '.$semanas_necessarias_arredondado.'</p>';

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera,

 

Pensei em juntar tudo em um array só, com os valores intercalados. E depois dividir as materias em semana com array_chunk.

 

Minha dúvida, tem alguma função que mescla os array, intercalando?

 

Exemplo:

 

$materias['matematica'] = [1,5,78,10,15,20];
$materias['portugues'] = [40,50,60,70,80];
$materias['fisica'] = [100,120,152,145,300,310,330];
$materias['quimica'] = [500,502,510];
$materias['sociologia'] = [999];

// 
$materias_total = [1,40,100,500,999,5,50,120]/* ....*/;

Ou seja pega todo mundo que ta na posição 0, depois todos que estão na posição 1 e assim vai.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui. Não sei se era o jeito mais fácil.

 

$materias['matematica'] = [1,5,78,10,15,20];
$materias['portugues'] = [40,50,60,70,80];
$materias['fisica'] = [100,120,152,145,300,310,330];
$materias['quimica'] = [500,502,510];
$materias['sociologia'] = [999];

$resultado = array_map("count", $materias);

for($i = 0; $i < max($resultado); $i++)
{
	foreach ($materias as $key => $value) {
		if($materias[$key][$i] > 0)
			$materias_total[] = $materias[$key][$i];
	}
}
echo "<pre>";
print_r($materias_total);
exit();

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.