Jump to content
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>';

 

Share this post


Link to post
Share on other 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.

 

 

Share this post


Link to post
Share on other 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();

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.