Ankündigung

Einklappen
Keine Ankündigung bisher.

Array zusammenzählen wenn id mehrfach vorkommt

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Array zusammenzählen wenn id mehrfach vorkommt

    Hallo

    Ich habe folgendes Array:

    PHP-Code:
      Array (     [0] => Array         (             [event_mat_id] => 10464             [anzahl] => 2         )      [1] => Array         (             [event_mat_id] => 10483             [anzahl] => 2         )      [2] => Array         (             [event_mat_id] => 10116             [anzahl] => 20         )      [3] => Array         (             [event_mat_id] => 10483             [anzahl] => 10         )      [4] => Array         (             [event_mat_id] => 10116             [anzahl] => 10         )      [5] => Array         (             [event_mat_id] => 10464             [anzahl] => 2         )      [6] => Array          (              [event_mat_id] => 23             [anzahl] => 20          )  ) 
    Daraus sollte folgendes Array entstehen

    PHP-Code:
    Array
    (
        [
    0] => Array
            (
                [
    event_mat_id] => 10464
                
    [anzahl] => 4
            
    )

        [
    1] => Array
            (
                [
    event_mat_id] => 10483
                
    [anzahl] => 12
            
    )

        [
    2] => Array
            (
                [
    event_mat_id] => 10116
                
    [anzahl] => 30
            
    )

        [
    6] => Array 
            ( 
                [
    event_mat_id] => 23
                
    [anzahl] => 20 
            
    )

    ) ) 
    Wenn Werte mit gleicher event_mat_id vorhanden sind, soll anzahl also addiert werden, die anderen bleiben gleich.
    Jemand ev. einen Lösungsansatz für mich?


  • #2
    Das Array sieht so aus als wenn es das Resultat einer Datenbankabfrage ist. Wenn meine Vermutung richtig ist, dann löse dein Problem gleich mit SQL.
    PHP-Klassen auf github

    Kommentar


    • #3
      #2 wird wohl in die richtige Richtung weisen..

      So aus der Hüfte und in´s Handy getippt - also ungetestet

      PHP-Code:
      $result=array();
      foreach (
      $data as $value)
      {
          if(isset(
      $result[$value["event_mat_id"]]))
          {
              
      $result[$value["event_mat_id"]]["anzahl"]+=$value["anzahl"];
          }
          else
          {
              
      $result[$value["event_mat_id"]]=$value;
          }

      Kommentar


      • #4
        Wenn Werte mit gleicher event_mat_id vorhanden sind, soll anzahl also addiert werden
        Wenn es aus der DB kommt, kannst du direkt mit SUM(anzahl) und GROUP BY(event_mat_id) dieses Ergebnis schon aus der DB bekommen.
        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar

        Lädt...
        X