PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : variablen ketten addieren


sharp
08.06.2009, 02:14:05
N'abend an alle,


Ich habe ein Problem, welches mich schon den ganzen Abend beschäftigt.
Gegeben sind 100 variabeln mit festen werten z.B $var1=23451; $var2=25529, $var3=999;
Die Werte der Variabeln sind ohne Zusammenhang bzw. haben keine gemeinsame Formel.

Wenn nun ein User meiner Seite den "Startwert" - "5" eingeben sollte und den "Endwert" - "89" dann sollte mir das Teil die Variabeln $var5 - $var89 zusammenaddieren.
also $var5+$var6+$var7.....+$var89.

Das Ganze wäre recht leicht, wenn dieser "Startwert" bzw "Endwert" nicht flexibel wären.
Sprich wenn die User diese 2 Werte nicht selbst bestimmen.

Nun meine Frage: Wie addiere ich meine Variabeln, bei flexiblen "Startwerten" bzw "Endwerten"


Wäre über eine (hilfreiche) Antwort wahnsinnig dankbar.

Indyk
08.06.2009, 09:59:53
Hallo Sharp und willkommen im Forum,

deine Variablen sehen stark nach PHP aus, ich gehe trotzdem mal von Javascript aus da du ja im diesem Bereich gepostet hast.

Aus deinen Beispielen wird mir leider nicht klar wo dein Problem liegt, möchtest du eine unvorhersehbare anzahl an variablen addieren?

Das wäre problemlos mit einem Array und einer Schleife möglich.

Falls ich dich falsch verstanden hab, würde ich dich bitten es nochmal zu versuchen etwas genauer zu erklären. vielleicht auch mit Beispielcode um es zu veranschaulichen.

sharp
08.06.2009, 13:38:08
deine Variablen sehen stark nach PHP aus

Das sind sie auch. Ich entschuldige mich für meine "dummheit" hier im falschen bereich gepostet zu haben. War gestern nur so durch den Wind das nicht erkannt zu haben.
Sry dafür nochmal. => Neuer ausführlicher Thread im richtigen Bereich

Indyk
08.06.2009, 13:48:05
Kein Problem, ich habs dann mal verschoben *mächtig*.

Hier noch ein kleines Beispiel zum addieren, leider bist du auf meine Fragen nicht weiter eingegangen.


$sumieremich = array(1,2,3);
//....
$sumieremich[] = 4;
//.....
$sumieremich[] = 5;

foreach($sumieremich as $zusumieren)
{
$summe += $zusumieren;
}

echo 'Summe aller variablen: ".$summe;


Es gibt sonst auch noch ne richtig schöne funtkion in php:
array_sum() (http://de.php.net/manual/de/function.array-sum.php)

Vielleicht hilft dir das Beispiel auf die Sprünge

sharp
08.06.2009, 13:50:50
$startwert= $_POST["startwert"];
$endwert=$_POST["endwert"];

$fest1=1800;
$fest2=3600;
$fest3=12600;
$fest4=32400;
$fest5=66600;
$fest6=121500;
$fest7=198900;
$fest8=305100;
$fest9=443700;
$fest10=618300;
$fest11=835200;
$fest12=1096200;
$fest13=1407600;
$fest14=1773000;
$fest15=2196000;
$fest16=2682900;
$fest17=3235500;
$fest18=3860100;
$fest19=4560300;
$fest20=5339700;


Startwert und Endwert werden mit einer htmlseite eingetragen und an php übermittelt.
Dieser Startwert bzw Endwert ist flexibel, sprich er wird von den Usern selbst über ein
"input type="Text" name="startwert" eingetragen.
Startwert sei zum Beispiel 5 und Endwert 19.
Dann soll mir php alle variablen von $fest5 bis $fest19 addieren
also $fest5+$fest6+$fest7.....+$fest19.

Es da Start und Endwert flexibel sind zum Beispiel statt "5" eine "2" und statt "19" eine "9",
weiß ich mir nicht weiterzuhelfen.

Bin noch nicht lange mit php dabei und würde mich über eine (hilfreiche) Antwort freuen.
Falls möglich den Code vollständig unten rein posten. Mit "mach doch einfach mal den befehl: xxx" ist mir zwar ein wenig geholfen aber höchst warscheinlich kenne ich den noch nicht einmal=) und muss mich wieder durch unzählige tutorials kämpfen.
Eigentlich auch kein Problem nur bin ich mir sicher, dass ich mich dort wieder irgendwo aufhänge.

DokuLeseHemmung
08.06.2009, 14:15:28
Vergiss die durchnummerierten Variablen!
Dabei wird dir wohl niemand helfen wollen.
Machs dir mit Arrays!! (So wie von Indyk schon vorgeschlagen)
Alles andere ist Unsinn.

und muss mich wieder durch unzählige tutorials kämpfen.
Das können und wollen wir dir nicht abnehmen!

Falls möglich den Code vollständig unten rein posten.
Vergiss es!
Nix Code abstauben!
Selber lernen macht selber schlau!

sharp
08.06.2009, 15:21:36
Ok also dann werde ich die oben genannten variabeln in einen array abspeichern.

$ar=array($fest1,........$fest20);
Da das Array schon mit 0 anfängt zu zählen müsste ich vom startwert bzw endwert "1" abziehen.

Da Start bzw Endwert flexibel sind, wird das etwas schwieriger mit dem "einfach addieren".
bzw dem array addieren, da es ja nicht das gesamte array ist sondern nur vom startwert bis zum endwert.

$startwert= $_POST["startwert"];
$endwert=$_POST["endwert"];
$startwert1 = $startwert-1;
$endwert1 = $endwert-1;


$ar=array($fest1,........$fest20);





Wenn ich jetzt einen befehl hätte, der mir das array nur von $startwert1 bis $endwert1 ausgibt wäre das denke ich die Lösung.
Also $ar [$startwert1] addiert mit den dazwischenliegendenwerten bis $ar [$endwert1]

/edit für Indyk: Ich nehme als Beispiel jetzt einfach mal die Zahlen 1 bis 20. Der User kann den Startwert zB 5 angeben und den Endwert zB 16.
Das Teil soll dann die Zahlen 5 bis 16 addieren. Nur sind es in meinem Fall nicht die Zahlen 1 bis 20 sondern viel größere die auch nicht als differenz immer 1 haben sondern sich die differenz benachbarter kettenglieder imer größer wird

DokuLeseHemmung
08.06.2009, 15:28:17
Lesen:
http://de2.php.net/manual/de/function.array-slice.php
http://de2.php.net/manual/de/function.array-sum.php



Bei unsymetrien kannst du das Array auch mit foreach durchlaufen.

$ar = array();
$ar[1] = 44;
$ar[200] = 3524;

$sum = 0;
foreach($ar as $k => $v)
{
if($k<=$endwert && $k>=$startwert) $sum += $v;
}

sharp
08.06.2009, 16:09:00
Lesen:
http://de2.php.net/manual/de/function.array-slice.php
http://de2.php.net/manual/de/function.array-sum.php


Ich versteh zwar dein Beispiel überhaupt nicht aber diese 2 Links haben mir wahnsinnig weitergeholfen. Mit ihnen klappt es einwandfrei.
Vielen Vielen dank für die schnelle Antwort (& ja ich weiß ich bin ein Noob)