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++"
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
Nein, kanns im SQL nicht anders lösen. Muss doch ne Möglichkeit in PHP geben!?
ghostgambler
03-02-2005, 19:29
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!!!
MelloPie
03-02-2005, 19:40
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...
die ID muss auf jeden Fall auch passend zur bezeichnung verschoben/gelöscht werden!
Hab das im ersten Posting jetzt auch korrigiert.