Gracias a los dos, pero sólo me sirvió el de maycolalvarez, gracias.
@Nemutagk el problema simplemente es que no tengo conocimientos suficientes de PHP como para hacer algo tan simple como el code de maycolalvarez, que es exactamente lo que buscaba.
Así es como quedó mi cutre-código:
Código PHP:
<?php
header("Content-type: text/html; charset=utf-8");
if ($_POST['xi'] == "") {
?>
<meta name="Content-Type" content="text/html;" http-equiv="content-type" charset="utf-8" />
<form id='login' action='est.php' method='post' accept-charset='UTF-8'>
<textarea name="xi" rows="30" cols="20">xi...</textarea>
<textarea name="fi" rows="30" cols="20">fi...</textarea><br>
<input type='submit' name='Submit' value='Calcular' />
</form>
<?php
} else {
$xi_data = explode("\r\n",$_POST['xi']);
$fi_data = explode("\r\n",$_POST['fi']);
foreach ($xi_data as $key => $value) {
$xifi_data[$key] = $value * $fi_data[$key];
}
foreach ($fi_data as $key => $value) {
$Fi_data[$key] = $value + $Fi_data[$key-1];
}
foreach ($xi_data as $key => $value) {
$xi2fi_data[$key] = pow($value,2) * $fi_data[$key];
}
echo '<textarea rows="1" cols="20">xi:</textarea>';
echo '<textarea rows="1" cols="20">fi:</textarea>';
echo '<textarea rows="1" cols="20">xi·fi:</textarea>';
echo '<textarea rows="1" cols="20">Fi:</textarea>';
echo '<textarea rows="1" cols="20">xi²fi:</textarea><br>';
echo '<textarea name="xi" rows="30" cols="20">'.$_POST['xi'].'</textarea>';
echo '<textarea name="fi" rows="30" cols="20">'.$_POST['fi'].'</textarea>';
echo '<textarea name="xifi" rows="30" cols="20">';
foreach ($xifi_data as $xifi) {
echo $xifi."\n";
}
echo '</textarea>';
echo '<textarea name="Fi" rows="30" cols="20">';
foreach ($Fi_data as $Fi) {
echo $Fi."\n";
}
echo '</textarea>';
echo '<textarea name="xi²fi" rows="30" cols="20">';
foreach ($xi2fi_data as $xi2fi) {
echo $xi2fi."\n";
}
echo '</textarea>';
$comp_xi = preg_replace("/[^0-9]/","", $_POST['xi']);
$comp_fi = preg_replace("/[^0-9]/","", $_POST['fi']);
if (!$comp_xi && !$comp_fi) {
echo '<br>Error: Los datos de xi y de fi solo pueden ser númericos';
exit;
} else {
if (count($xi_data) != count($fi_data)) {
echo '<br>Error: La cantidad de datos de xi y de fi debe ser la misma';
exit;
} else {
echo '<br>'.count($xi_data).' filas insertadas.';
}
}
$sum_fi_data = array_sum($fi_data);
$sum_xifi_data = array_sum($xifi_data);
$sum_Fi_data = array_sum($Fi_data);
$sum_xi2fi_data = array_sum($xi2fi_data);
$media = ($sum_xifi_data/$sum_fi_data);
$varianza = ($sum_xi2fi_data/$sum_fi_data)-pow($media,2);
$desviacion = sqrt($varianza);
echo '<br>∑ fi: '.$sum_fi_data;
echo '<br>∑ xifi: '.$sum_xifi_data;
echo '<br>∑ Fi: '.$sum_Fi_data;
echo '<br>∑ xi²fi: '.$sum_xi2fi_data;
echo '<br>Media: '.$media;
echo '<br>Varianza: '.$varianza;
echo '<br>Desviación típica(σ): '.$desviacion;
echo '<br>Coeficiente de Variación: '.($desviacion/$media);
}
?>
Lo podéis probar tal cual. Hace lo básico de estadística. Saludos