Hier werden alle Zahlen aus dem per Formular übergebenen String extrahiert und ein paar
simple Berechnungen angestellt.
<?php
function calc()
{
$content = '';
if (isset($_POST['a'])) {
if (get_magic_quotes_gpc()){}
$_POST['a'] = stripslashes($_POST['a']);
$content = htmlentities(stripslashes($_POST['a']));
}
$success = preg_match_all('#(\d+(?:\.\d+)?)#', $content, $matches);
if ($success){
$numbers = $matches[1];
}else{
$numbers = array(0);
}
$n = count($numbers);
$min = min($numbers);
$max = max($numbers);
$sum = array_sum($numbers);
$avg = sprintf("%01.2f", $sum/$n);
$dif = count(array_count_values($numbers));
$tmp = sort($numbers);
if ($n%2==0){
$ix = $n/2-1;
$med = ($numbers[$ix] + $numbers[$ix+1])/2;
}else{
$ix = floor($n/2);
$med = $numbers[$ix];
}
echo <<< EOT
<style type="text/css">
dt{
font-size:1.2em;
font-weight:bold;
}
</style>
<dl>
<dt># of values</dt>
<dd>$n</dd>
<dt>different values</dt>
<dd>$dif</dd>
<dt>min</dt>
<dd>$min</dd>
<dt>max</dt>
<dd>$max</dd>
<dt>avg</dt>
<dd>$avg</dd>
<dt>median</dt>
<dd>$med</dd>
<dt>sum</dt>
<dd>$sum</dd>
</dl>
<form action="{$_SERVER['PHP_SELF']}" method="post">
<textarea name="a">$content</textarea>
<input type="submit" value="berechnen">
</form>
EOT;
}
calc();
?>