Mehrdimensionales Array zusammenführen (doppelte Werte nicht übernehmen)

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

  • Mehrdimensionales Array zusammenführen (doppelte Werte nicht übernehmen)

    Wie kann ich die 2 mehrdimensionalen arrays $array1 und $array2 zusammenführen und dabei doppelte Werte verwerfen?

    $array1[0]["id"]=1
    $array1[0]["bezeichnung"]="PHP"
    $array1[1]["id"]=2
    $array1[1]["bezeichnung"]="ASP"

    $array2[0]["id"]=1
    $array2[0]["bezeichnung"]="PHP"
    $array2[1]["id"]=3
    $array2[1]["bezeichnung"]="C++"

    Am Ende soll $array so aussehen:

    $array[0]["id"]=1
    $array[0]["bezeichnung"]="PHP"
    $array[1]["id"]=2
    $array[1]["bezeichnung"]="ASP"
    $array[2]["id"]=3
    $array[2]["bezeichnung"]="C++"
    Zuletzt geändert von j.greil; 03.02.2005, 19:51.

  • #2
    Moin!

    Hatte mal ein ähnliches Problem.... Beim zusammenführen doppelte löschen... Gab es auch hier im Forum keine wirklichen Antworten zu dem Thema...

    Ich dachte mir das so, dass er das mit array_merge() zusammengeführte Array mit zwei Schleifen durchläuft und bei doppelt vorkommenden werten dann einen der beiden löscht.... Habe es aber nicht vollendet, sondern die SQL Abfrage geändert... da gibs nämlich ne funktion, die verhindert, das ein datensatz doppelt genommen wird....

    Vielleicht hilft dir das ja so als Denkanstoß?!

    Bis denn

    Dioony
    Das Problem zu erkennen ist wichtiger, als die Lösung zu erkennen, denn die genaue Darstellung des Problems führt zur Lösung.
    [Albert Einstein

    Kommentar


    • #3
      Nein, kanns im SQL nicht anders lösen. Muss doch ne Möglichkeit in PHP geben!?

      Kommentar


      • #4
        Original geschrieben von j.greil
        Nein, kanns im SQL nicht anders lösen. Muss doch ne Möglichkeit in PHP geben!?
        Wie wäre es einfach mit von Hand programmieren? Ein Array als Grund nutzen und das andere einsortieren, wenn Beschreibung schon irgendwo vorhanden ist, dann überspringen, ansonsten hinten anhänge....ganz einfach, schreib dir ne Funktion, die das gesamte Array nach Beschreibung durchsucht und true/false zurückliefert und der Rest ist auch nicht schwerer!!!

        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
        Wie man Fragen richtig stellt

        Kommentar


        • #5
          Da Du die ID auch gleich mitveränderst brauchst Du die gar nicht beachten.
          $array1[1]["id"]=2
          $array1[1]["bezeichnung"]="ASP"
          $array2[1]["id"]=2
          $array2[1]["bezeichnung"]="C++"
          $array[1]["id"]=2
          $array[1]["bezeichnung"]="ASP"
          $array[2]["id"]=3
          $array[2]["bezeichnung"]="C++"
          Dann gehts doch ganz einfach mach eindimensionale arrays draus, array_merge und array_unique und fertig...
          Beantworte nie Threads mit mehr als 15 followups...
          Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

          Kommentar


          • #6
            die ID muss auf jeden Fall auch passend zur bezeichnung verschoben/gelöscht werden!
            Hab das im ersten Posting jetzt auch korrigiert.

            Kommentar

            Lädt...
            X