Me acabo de dar cuenta que cometo el error de restarle uno al resultado, cuando se lo había restado adentro. El algoritmo final es así:
Código PHP:
Ver originalfor ($i = 0; $i < 9; $i++) $alumnos[] = mt_rand(1, 7); echo "Datos: " . implode(", ", $alumnos) . "<br />";
$cantidad = count($alumnos); $posMediana = ($cantidad + 1) / 2;
$mediana = $cantidad % 2 != 0 ? $alumnos[$posMediana - 1] : ($alumnos[$posMediana - 1] + $alumnos[$posMediana]) / 2;
echo "Mediana: " . $mediana;
Me refería a que la posición de la mediana es la que debe ser un entero, la mediana puede o no serlo.
Gracias por la observación,
xSkArx.