Sven Rautenberg: Summe eines Arrays

Beitrag lesen

Moin!

ich möchte einfach die Summe aus einem Array wiedergeben was wie folgt aussieht:

Array
(
    [0] => Array
        (
            [product_price] => 58.99
        )

[1] => Array
        (
            [product_price] => 146.00
        )

)

Ich speichere die Daten per while-Schleife in dem Array
Ein echo array_sum($preis); gibt mir nur den Wert "0" zurück.

Da array_sum() nur mit eindimensionalen Arrays arbeiten kann, wird das nicht funktionieren.

Aber es gibt eine allgemeine Funktion, die beliebige Arrays nach beliebigen Regeln auf einen Wert eindampfen kann: array_reduce().

Die reduce-Funktion muss zwei beliebige Array-Elemente nehmen, in die Unter-Arrays gehen, und die Summe der Preise zurückgeben.

In diesem Zusammenhang sei auch unbedingt auf array_map() hingewiesen. Mit dieser Funktion und array_sum() kann man's auch lösen.

Die map-Funktion muss ein Array-Element des Hauptarrays nehmen und den Preis aus dem Unter-Array zurückgeben. Das Funktionsergebnis von array_map() wird in array_sum() eingespeist.

Beide Funktionen zusammen machen das, was seit Google als Map-Reduce bekannt ist. Sollte man sich unbedingt mal mit beschäftigen. Insbesondere kann man seit PHP 5.3 die Callback-Funktionen direkt als Lambda-Funktionen angeben, muss sie also nicht irgendwo anders als Funktion definieren.

- Sven Rautenberg

0 64

Summe eines Arrays

Matzeeee
  • php
  1. 0
    ChrisB
    1. 0
      Matzeeee
      1. 0
        Der Martin
  2. 0
    fastix®
    1. 0
      Gunnar Bittersmann
      1. 0

        Kurze Frage, kurze Antwort

        fastix®
        • sonstiges
        1. 0
          Tom
          1. 0
            fastix®
            1. 0
              Tom
            2. 0

              Array-Datensatz-Klasse bauen?

              Tom
              1. 0
                Matti Mäkitalo
                1. 0
                  Tom
                  1. 0
                    Matti Mäkitalo
                    1. 0
                      Tom
              2. 0
                dedlfix
      2. 0
        Alexander (HH)
        1. 0
          Gunnar Bittersmann
          1. 2
            fastix®
            1. 0
              Gunnar Bittersmann
              1. 0
                fastix®
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    fastix®
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        ChrisB
                        1. 0
                          Gunnar Bittersmann
                          1. 0
                            ChrisB
                            1. 0
                              Gunnar Bittersmann
                          2. 1
                            fastix®
                            1. 0
                              Gunnar Bittersmann
                              1. 0
                                fastix®
                                1. 0
                                  Gunnar Bittersmann
                                  1. 1
                                    Der Martin
                                    1. 0
                                      Gunnar Bittersmann
                                      1. 0
                                        Der Martin
                                        1. 0
                                          Multi
                                          1. 0
                                            ChrisB
                                            1. 0
                                              Multi
                                              1. 0
                                                ChrisB
                                                1. 0
                                                  Multi
                                                  1. 0
                                                    Der Martin
                                                    1. 0
                                                      dedlfix
                                                      1. 0
                                                        Der Martin
                                                        1. 0
                                                          Sven Rautenberg
                                                        2. 0
                                                          dedlfix
                                                          1. 0
                                                            Der Martin
                                          2. 0
                                            fastix®
                                            1. 0
                                              Multi
                                    2. 0

                                      Summe eines Arrays aus Benzinpreisen u. PowerPoint-Präsentatoren

                                      fastix®
                                      • meinung
                            2. 0
                              Gunnar Bittersmann
                              1. 0
                                fastix®
                                1. 0
                                  Der Martin
                                2. 0
                                  Gunnar Bittersmann
                      2. 0
                        fastix®
          2. 0
            ChrisB
            1. 0
              Gunnar Bittersmann
              1. 0
                ChrisB
                1. 0
                  Gunnar Bittersmann
                  1. 1
                    ChrisB
                    1. 0
                      Gunnar Bittersmann
                      1. 0
                        ChrisB
                        1. 0
                          fastix®
            2. 0
              Gunnar Bittersmann
  3. 1
    Sven Rautenberg