PINGNICK: array bereinigen und addieren...

Hallo,

ich habe ein Problem, ich muss ein array bereinigen, einige Einträge sind doppelt und müssen zusammengefasst werden.
Ein Beispiel Array könnte wie folgend aussehen:

array(4) {  
  [0]=>  
  array(2) {  
    ["tarif_id"]=>  
    string(3) "468"  
    ["produktpreis"]=>  
    string(3) "5.9"  
  }  
  [1]=>  
  array(2) {  
    ["tarif_id"]=>  
    string(3) "468"  
    ["produktpreis"]=>  
    string(3) "5.9"  
  }  
  [2]=>  
  array(2) {  
    ["tarif_id"]=>  
    string(4) "1182"  
    ["produktpreis"]=>  
    string(3) "134"  
  }  
  [3]=>  
  array(2) {  
    ["tarif_id"]=>  
    string(4) "1308"  
    ["produktpreis"]=>  
    string(2) "58"  
  }  
}

Mein erster Ansatz ist das sortieren nach TarifID´s soweit so gut. Jetzt sieht man das die TarifID 468 doppelt vorhanden ist.
Sie muss zusammengefasst werden. Hierzu muss der Betrag aus dem einem Array mit dem anderen Array addiert werden.
Das Ergebnis sähe dann wie folgend aus:

array(3) {  
  [0]=>  
  array(2) {  
    ["tarif_id"]=>  
    string(3) "468"  
    ["produktpreis"]=>  
    string(3) "11.8"  
  }  
  [1]=>  
  array(2) {  
    ["tarif_id"]=>  
    string(4) "1182"  
    ["produktpreis"]=>  
    string(3) "134"  
  }  
  [2]=>  
  array(2) {  
    ["tarif_id"]=>  
    string(4) "1308"  
    ["produktpreis"]=>  
    string(2) "58"  
  }  
}

Nur wie mache ich das?

Danke PINGNICK

  1. Hallo,

    naja, du könntest

      
    foreach ($startArray as $eintrag) {  
        $endArray[$eintrag["tarif_id"]] = $eintrag;  
    }  
    var_dump($$endArray);  
    
    

    machen (ungetestet).
    Gruß

    jobo

    1. Hallo jobo,

      vielen Dank für den Einstieg. Der Array ist jetzt bereinigt, aber leider nicht der "produktpreis" addiert.

      Danke
      PINGNICK

      Hallo,

      naja, du könntest

      foreach ($startArray as $eintrag) {
          $endArray[$eintrag["tarif_id"]] = $eintrag;
      }
      var_dump($$endArray);

      
      >   
      > machen (ungetestet).  
      > Gruß  
      >   
      > jobo
      
  2. Hi!

    ich habe ein Problem, ich muss ein array bereinigen, einige Einträge sind doppelt und müssen zusammengefasst werden.
    Mein erster Ansatz ist das sortieren nach TarifID´s soweit so gut.

    Wenn das das Zusammefasskriterium ist, dann erzeuge ein neues Array mit den TarifIDs als Key. Wenn vorhanden (isset($array[$tarifid])), dann addieren, ansonsten neuen Eintrag erstellen.

    Lo!