kostenloser Webspace werbefrei: lima-city


Kumulative Summe

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    dev

    Kostenloser Webspace von dev, auf Homepage erstellen warten

    dev hat kostenlosen Webspace.

    Moin!

    Ich möchte gerne mit PHP in einem tag/array">Array eine kumulative Summe bilden. Also soll zu dem aktuellen Element immer noch alle vorherigen Elemente hinzugerechnet werden.

    Beispiel:

    $elemente = array(2, 5, 8);
    $kumsumme = array(2, 7, 15);

    Habt ihr ne Ahnung, ob es dafür einen Befehl in PHP gibt? Und wenn ja welchen? Denn sogar mein Taschenrechner TI-83 kann das und dann sollte es mit PHP doch eigentlich auch gehen -.-
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. m******s

    Nein, gibt es nicht. Schleife machen:

    <?
    function kumsumme(arr)
    {
        kumsum[0] = arr[0];
        for(int i = 1; i < count(arr); i++)
        {
            kumsum[i] = arr[i] + kumsum[i-1];
        }
        return kumsum;
    }
    ?>


    Bin gerade in Javascript drinne, deswegen ist die Syntax vielleicht nicht 100% korrekt, aber sollte reichen, um die Idee zu vermitteln.


    Beitrag geändert: 1.9.2008 13:24:46 von merovius
  4. Autor dieses Themas

    dev

    Kostenloser Webspace von dev, auf Homepage erstellen warten

    dev hat kostenlosen Webspace.

    Ah... cool, dass du mir gleich ne Funktion gebastelt hast, danke :)

    Die richtige Syntax (für nachfolgende Sucher):

    function kumsumme($arr)
    {
        $kumsum[0] = $arr[0];
        for($i=1;$i<count($arr);$i++)
        {
            $kumsum[$i] = $arr[$i] + $kumsum[$i-1];
        }
        return $kumsum;
    }
  5. Hmm,

    also spontan ist mir dazu keine Funktion bekannt und ein Blick in Statistikfunktionen http://de2.php.net/manual/en/book.stats.php förderte auch nichts zu Tage.

    Allerdings ist dies mit SQL möglich... Falls du also die Daten ehh aus einer Datenbank holst könntest du folgendes machen:
    USE tempdb
    GO
    
    CREATE TABLE SummeTest
    (
      recid  INTEGER NOT NULL IDENTITY PRIMARY KEY,
      wert   INTEGER NOT NULL
    )
    GO
    
    INSERT INTO SummeTest (wert) VALUES (2)
    INSERT INTO SummeTest (wert) VALUES (5)
    INSERT INTO SummeTest (wert) VALUES (7)
    INSERT INTO SummeTest (wert) VALUES (9)
    GO
    
    SELECT 
      a.wert, (SELECT SUM(b.wert) FROM SummeTest b WHERE b.recid <= a.recid) AS 'kumulative Summe' 
    FROM 
      SummeTest a
    
    wert        kumulative Summe 
    ----------- ---------------- 
    2           2
    5           7
    7           14
    9           23
    
    (4 row(s) affected)


    Grüßle
  6. Autor dieses Themas

    dev

    Kostenloser Webspace von dev, auf Homepage erstellen warten

    dev hat kostenlosen Webspace.

    Ahja, vielen Dank :) Darauf war ich auch schon gestoßen, aber es ist so, dass in der DB nur Punkte stehen und Punkte_des_Spielers / Alle_Punkte ergibt dann jeweils ne Wahrscheinlichkeit und die muss ich kumulieren^^

    Deswegen nutze ich doch den oberen Weg... aber danke :)
  7. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!