Announcement

Collapse
No announcement yet.

Summe bilden im array

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Summe bilden im array

    Hallo Leute

    ich habe einen array der sieht folgendermasen aus:
    Array


    Array
    (
    [0] => Array
    (
    [dauer] => 2
    [status] => 180
    [masch] => 20-01
    )

    [1] => Array
    (
    [dauer] => 14
    [status] =>
    [masch] => 20-01
    )

    [2] => Array
    (
    [dauer] => 3
    [status] => 180
    [masch] => 20-01
    )

    [3] => Array
    (
    [dauer] => 2
    [status] =>
    [masch] => 20-01
    )

    [4] => Array
    (
    [dauer] => 2
    [status] => 180
    [masch] => 20-01
    )

    [5] => Array
    (
    [dauer] => 2
    [status] =>
    [masch] => 20-01
    )

    [6] => Array
    (
    [dauer] => 2
    [status] => 180
    [masch] => 20-01
    )

    [7] => Array
    (
    [dauer] => 3
    [status] =>
    [masch] => 20-01
    )

    [8] => Array
    (
    [dauer] => 4
    [status] => 180
    [masch] => 20-01
    )

    [9] => Array
    (
    [dauer] => 2
    [status] =>
    [masch] => 20-01
    )

    [10] => Array
    (
    [dauer] => 1
    [status] => 180
    [masch] => 20-01
    )

    [11] => Array
    (
    [dauer] => 2
    [status] =>
    [masch] => 20-01
    )

    [12] => Array
    (
    [dauer] => 3
    [status] => 180
    [masch] => 20-01
    )

    [13] => Array
    (
    [dauer] => 19
    [status] =>
    [masch] => 20-01
    )

    [14] => Array
    (
    [dauer] => 2
    [status] => 180
    [masch] => 20-01
    )
    )
    Jetzt will ich alle Zeiten (dauer) die den Status 180 haben addieren.
    Ich habe schon mit array_sum herum probiert ich bekomme aber imm nur die Meldung:
    Warning: array_sum(): The argument should be an array
    Hätte jemand eine Idee wie ich das verwirklichen kann?

    Im vooraus schon mal danke für eure Mühen.

    Gruß
    Genscher

  • #2
    du läuft das Array in einer for Schleife durch
    ist der Wert in Status 180 dann addierst du die Zeit zu einem vorheri auf 0 gesetzten Wert
    Christian

    Comment


    • #3
      Hallo,

      PHP Code:
      ...
      function 
      mySum($pSum$pData)
      {
        
      $pSum += $pData['status'] == 180 $pData['dauer'] : 0;
        return 
      $pSum;
      }

      $DieSumme array_reduce($DeinAusgangsArray'mySum');
      ... 
      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        Danke euch beiden.

        An Funktionen hatte ich auch schon gedache hab aber fast gar keine Erfahrung damit.

        @Falk
        könntest du mir bitte grob mal Erklären was die Funktion bewirkt bzw. was welcher Befahl macht.
        Dann müßte ich dich beim nächsten mal nicht mit so, für dich, billigen Fragen belästigen

        Comment


        • #5
          Hallo Genscher,

          array_reduce ( array $input , callback $function [, int $initial ] )
          Reduziert - wie der Name schon sagt - ein Array auf einen einzelnen Wert. Dazu wird die im Parameter callback $function benannte Funktion für jeden Eintrag im Array aufgerufen. Diese Callback-Funktion bekommt zwei Parameter übergeben - 1. den "reduzierten Wert" und 2. den aktuellen Eintrag aus dem Array.
          In eine "normale" Schleife übersetzt könntest du das auch so schreiben:
          PHP Code:
          ...
          function 
          mySum($pSum$pData)
          {
            
          $pSum += $pData['status'] == 180 $pData['dauer'] : 0;
            return 
          $pSum;
          }

          $DieSumme 0;
          foreach (
          $DeinAusgangsArray as $value) {
            
          $DieSumme += mySum($DieSumme$value);
          }
          ... 
          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment


          • #6
            danke dir mal Falk.

            bringt mich mal einen Schritt weiter in den Funktionen.
            Ich hab zwar schon viel drüber gelesen doch die Sachen dann anwenden hab ich noch ein kleines Problem.

            Also danke nochmals.

            Gruß
            Genscher

            Comment

            Working...
            X