Ich habe versucht, "array_merge ($ a, $ b)" zu verwenden, aber das funktioniert nicht für das, was ich mache. Hier sind zwei Arrays:Wie zwei mehrdimensionale Arrays zusammenführen und Duplikate aktualisieren?
$a =
Array
(
[Mike] => Array
(
[100] => Array
(
[quantity] => 1
[attribute] => 1
)
[200] => Array
(
[quantity] => 1
[attribute] => 1
)
[300] => Array
(
[quantity] => 1
[attribute] => 1
)
[400] => Array
(
[quantity] => 1
[attribute] => 1
)
)
)
$b =
Array
(
[Mike] => Array
(
[500] => Array
(
[quantity] => 1
[attribute] => 1
)
[600] => Array
(
[quantity] => 1
[attribute] => 1
)
)
)
Das Konzept ist ein Benutzer „Mike“, fügt Elemente in ihre Liste (100.200.300.400). Diese Liste wird in der Datenbank gespeichert. Mike meldet sich ab und startet einige Tage später eine neue Liste als anonymer Gast, der Gegenstände (500.600) hinzufügt, die er in seiner Sitzung gespeichert hat. Wenn er fertig ist und sich wieder anmeldet, möchte ich die beiden Listen kombinieren und die aktualisierte Liste speichern. Wenn ich "array_merge" benutze und der Array-Schlüssel [Mike] ist, ersetzt er $ a durch $ b und ersetzt die Elementnummern zusammen.
Wie kann ich das kombinieren? Auch wenn zwei Elemente in beiden Listen gleich sind, wie (100,200,300,400) in einer Liste und (100,500) in der zweiten Liste (Elementnummer "100" ist hier das Duplikat). Ich möchte, dass die Felder [quantity] und [attribute] der "100" in der zweiten Liste die Felder für den Eintrag "100" in der ersten Liste überschreiben.
Dank Mit freundlichen Grüßen
Vielen Dank, es war tatsächlich: $ c ['Mike'] = $ b ['Mike'] + $ ein ['Mike'], um die Array-Struktur gleich zu halten. (Bitte ignorieren Sie meinen vorherigen Kommentar zu einer sekundären Frage, ich konnte es mit foreach Schleifen auf beiden Arrays lösen.) – peppy