2016-10-29 3 views
0

Ich versuche herauszufinden, wie wenn die Benutzereingabe wie: avg(2,3,6,1) und dann der Server wird mit der Antwort antworten, die lautet: Average of (2,3,6,1) is 3.Get Eingabe AVG (Beispiel: 2,4,3), um den Durchschnitt zu finden

Hier ist meine einfache Arbeit und blieb über die nächste Implementierung stecken.

if($r['$msg']="avg(".$i")"){ //if message is avg(2,3,6,1) 
$i = array($i); 
$avg = array_sum($i)/count($i); 
echo "<div class='msg'>Server : $avg</div>"; 

Wie funktioniert es? Entschuldigung für den 'noob' Code.

+2

Thew Dinge: 1) In Ihrer if-Anweisung haben Sie eine einfache Zuordnung, wo Sie wahrscheinlich einen Vergleich wünschen (Siehe: http://stackoverflow.com/q/2063480). 2) Was du in '$ i' hast, ist wahrscheinlich nur ein String und nur weil du es in ein Array einpackst, wird es wahrscheinlich nicht das Array erzeugen, das du willst. Es wird nur ein Array mit einem Element erzeugt und das ist der String: 'Array ([0] =>" avg (2,3,6,1) ")' (Siehe: http://php.net/manual/ de/language.types.array.php). – Rizier123

+0

Auch wenn Ihre Zeichenfolge wirklich 'avg (2,3,6,1)' ist, dann möchten Sie wahrscheinlich eine einfache Regex betrachten, um die Zahlen aus der Zeichenfolge zu extrahieren. – Rizier123

+0

Vielen, vielen Dank für Ihre Erklärung, Alter, jetzt habe ich es (y) – Rakhadin

Antwort

0

Sie können es mit explode Funktion in PHP tun. Konvertiere den String in ein Array. Überprüfen Sie den folgenden Code, es hilft.

In Ihrem Code $i = array($i); ausgeben werden wie Array ([0] => 2,3,6,1)

statt 1-D-Array zu erstellen, die Sie erstellen 2-D-Array.

$i = "2,3,6,1"; 
//$r['$msg'] = "avg(".$i.")"; 
$i= explode(",",$i); 
//$i = array($i); 
print_r($i); 
$avg = array_sum($i)/count($i); 
echo "<div class='msg'>Server : </div>"; 
echo $avg; 
+0

Armen mich, wissen über explodieren Dinge, aber in "wann" zu verwechseln, es zu benutzen lol. Vielen Dank vielen Mann, du rettest meinen Tag: D – Rakhadin

Verwandte Themen