fastix®: Summe eines Arrays

Beitrag lesen

Moin!

Das geht so nicht, weil array_sum() nicht weiß, was es denn addieren soll.

In deinem Fall ist es so, dass Du einen Array aus Hashes hast. array_sum kann wunderbar eindimensionale Array durchrechnen. Deinen indes nicht. Was wäre denn, wenn es nicht nur einen Preis gäbe:

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

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

)

Dir kann aber geholfen werden. Damit die von mir verwendeten Variablen nicht mit Deinen kollidieren kapsele ich die Ermittlung in einer Funktion:

function getSummeVonArrayAusHashes ($ar, $sKey) {  
     /*  
     # $ar: Array aus Hashes  
     # $sKey: hash-Bezeichner des jeweiligen Elementes  
     */  
  
     // Leere Variable für die Summe:  
     $sum=0;  
     // Für jedes Element des Arrays als hash:  
     foreach ($ar as $tmp) {  
     // Teste ob der Key überhaupt existiert:  
         if (isset($tmp[$sKey]) {  
               // addiere den Wert:  
               $sum += $tmp[$sKey]; // Kann auch als $sum = $sum + $tmp[$sKey] notiert werden.  
         } else {  // Falls nicht ...  
             // Deine Fehlerbehandlung hier hinschreiben  
             return false; // Abbruch  
         }  
     }  
     return $sum;  
}

In Deinem Fall kann es womöglich mit der funktion und dem Aufruf ...

setlocale(LC_MONETARY, 'de_DE');  
$summe=getSummeVonPreisArray ($preis, 'product_price');  
if (! false === $summe) {  // Kann ja tatsächlich auch 0 rauskommen...  
     print money_format('%.2n', $summe);  
} else {  
      // Deine Fehlerbehandlung hier hinschreiben  
}

... funktionieren. Der Code kann fehlerhaft sein, er ist nicht getestet, kann insbesondere "Typos" enthalten. Die weitere Verfeinerung überlasse ich Dir.

Im Übrigen wirst Du schon bald sehen das es besser ist die Preise als ganzzahlige Cent-Beträge zu speichern, mit diesen zu rechnen und diese nur für Ausgaben in Euro "umzurechnen".

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix

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