Tengo un problema al generar la media de un array ya que no me lo muestra en pantalla o no estoy haciendo algo bien.
El siguiente código muestra un formulario que al escribir '1' y enviar se imprime una lista de alumnos con sus notas, las notas se generan aleatoriamente en las funciones 'notaDificultadBaja()' y 'notaDificultadMedia()' y estas notas se guardan en el array $datos['notas'].
La última funcion llamada 'calculoNotasMedia()' la que esta con comentarios es la que tendría que generar las notas medias pero no me imprime nada por pantalla y en otros arrays si que me funciona.
Si todo funcionase bien quería que me imprimiese esto :
El siguiente código muestra un formulario que al escribir '1' y enviar se imprime una lista de alumnos con sus notas, las notas se generan aleatoriamente en las funciones 'notaDificultadBaja()' y 'notaDificultadMedia()' y estas notas se guardan en el array $datos['notas'].
La última funcion llamada 'calculoNotasMedia()' la que esta con comentarios es la que tendría que generar las notas medias pero no me imprime nada por pantalla y en otros arrays si que me funciona.
Código (php) [Seleccionar]
<?php session_start();?>
<html>
<body>
<form action="simuladorExamenes.php" method= "get">
Opción: <input type = "text" name ="opcion">
<input type = "submit">
</form>
<?php
if($_GET['opcion'] == 1){
imprimeListaAlumnosNotas();
}
if(!existenDatosEnSesion()){
inicializaDatos();
}
function existenDatosEnSesion(){
return $_SESSION['datos'] != NULL;
}
function inicializaDatos(){
$persona1= [
'nombre' => 'persona1',
'notas' => []
];
$persona2= [
'nombre' => 'persona2',
'notas' => []
];
$persona3= [
'nombre' => 'persona3',
'notas' => []
];
$datos=[$persona1, $persona2, $persona3];
$_SESSION['datos'] = $datos;
}
function notaDificultadBaja(){
$datos = $_SESSION['datos'];
foreach ($datos as $key => $value) {
$datos[$key]['notas'] = random_int(5 * 100 , 10 * 100) / 100;
}
echo "<td>",$datos[$key]['notas'],"</td>";
}
function notaDificultadMedia(){
$datos = $_SESSION['datos'];
foreach ($datos as $key => $value) {
$datos[$key]['notas'] = random_int(0 * 100, 10 * 100) / 100;
}
echo "<td>",$datos[$key]['notas'],"</td>";
}
function imprimeListaAlumnosNotas(){
$datos = $_SESSION['datos'];
echo "<div class='Encabezado'>";
echo "<h2>Lista de Alumnos y notas </h2>";
echo "</div>";
echo "<table>";
echo "<tr>";
echo "<th>Nombre</th>";
echo "<th>E0</th>";
echo "<th>E1</th>";
echo "<th>Media</th>";
echo "</tr>";
foreach ( $datos as $alumno ) {
echo "<tr>";
echo "<td>",$alumno['nombre']," ","</td>";
notaDificultadBaja();
notaDificultadMedia();
//calculoNotasMedia($alumno['notas']);
echo "</tr>";
}
echo "<tr>";
echo "<td>";
echo "<br>";
echo "<b>Notas Medias</b>";
echo "<td/>";
echo "<tr/>";
echo "</table>";
}
/*function calculoNotasMedia($pArrayNotas) {
$sumaNotas = 0;
$numNotas = 0;
foreach ( $pArrayNotas as $unaNota ) {
$numNotas++;
$sumaNotas += $unaNota;
}
return $sumaNotas/$numNotas;
}*/
?>
</body>
</html>
Si todo funcionase bien quería que me imprimiese esto :