Calcular Promedios con Php

Con el siguiente código calculo el promedio de tres notas:

<input name="prom[]" type="text" id="prom[]" value="<?php $Promedio=($row_not['n1']+$row_not['n2']+$row_not['n3'])/3; if (($Promedio) >= (0) && ($Promedio) <= (9.4)) { echo "0".number_format($Promedio,0); } else { echo number_format($Promedio,0); }; ?>" size="3" style="text-align: center"/>

<strong style="line-height: 1.5em;">El problema es que dicho cálculo lo hace sumando las tres notas y luego dividiendo entre tres. Pero cuando hay dos notas en blanco o una nota en blanco, el cálculo lo hace dividiendo entre 3 y el resultado no es real. Se puede observar en la siguiente imagen:

<strong style="line-height: 1.5em;">http://cursosvirtuales.webcindario.com/Fotos/002.png

<strong style="line-height: 1.5em;">

Existe la posibilidad de que cuando haya una nota por ejemplo 12, el promedio sea el mismo 12 y no 04. Y cuando tenga dos notas, por ejemplo: 13 y 12 el resultado sea 13 y no 08.


Hay la posibilidad de agregar código que muestra líneas arriba con el fin de logra mi propósito. Si alguien puede ayudar se lo agradeceré ...

1 Respuesta

Respuesta
1

$promedio = array_sum($array) / count($array);

En php hay muchas funciones que se pueden usar para ayudarnos, en este caso sum suma una lista de valores en un array y count los cuenta, los vacíos no los cuenta, es justo lo que necesitas. En tu caso el array se llama $row_not, así que :

$promedio = array_sum($row_not) / count($row_not); eso te guarda el promedio en la variable.

Muchas gracias EXPERTO, lo voy a probar y después te comunico como me fue. De veras muchísimas gracias por tu respuuesta inmediata.

Una pregunta como combino el código que me has enviado con el código que tengo. La verdad soy novato en esto y por eso no se como hacerlo ....

<input name="prom[]" type="text" id="prom[]" value="<?php $Promedio=($row_not['n1']+$row_not['n2']+$row_not['n3'])/3; if (($Promedio) >= (0) && ($Promedio) <= (9.4)) { echo "0".number_format($Promedio,0); } else { echo number_format($Promedio,0); }; ?>" size="3" style="text-align: center"/>


Eso era lo de antes, lo de ahora quedaría:


<input name="prom[]" type="text" id="prom[]" value="<?php $promedio = array_sum($row_not) / count($row_not); if (($Promedio) >= (0) && ($Promedio) <= (9.4)) { echo "0".number_format($Promedio,0); } else { echo number_format($Promedio,0); }; ?>" size="3" style="text-align: center"/>

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas