Ich versuche, die Elemente eines Arrays mit Werten von einem anderen zu überschreiben - ohne zusätzliche Elemente im Prozess zu erstellen.
Zum Beispiel:
%Vor%Fügen Sie die zu erstellenden Arrays zusammen:
%Vor%Mit array_merge oder array_replace würden die Elemente ordnungsgemäß überschrieben, aber das resultierende Array würde Elemente enthalten, die nicht im ersten Array gefunden wurden.
Wie kann ich zwei Arrays kombinieren, um ein Array zu erstellen, das nur Schlüssel aus dem ersten Array und die entsprechenden Werte aus einem zweiten Array enthält?
Gibt es eine vorhandene PHP-Array-Funktion, die das kann?
Danke für Ihre Hilfe!
Sie können array_intersect_key
und array_merge
um es zu tun:
array_intersect_key
isoliert diese Elemente von $replace
mit Schlüsseln, die bereits in $base
vorhanden sind (stellt sicher, dass neue Elemente nicht im Ergebnis erscheinen) und array_merge
ersetzt die Werte in $base
durch diese neuen Werte von $replace
(während sichergestellt wird, dass Schlüssel, die nur in $base
erscheinen, ihre ursprünglichen Werte beibehalten).
Es ist interessant festzustellen, dass das gleiche Ergebnis auch mit der umgekehrten Reihenfolge der Aufrufe erreicht werden kann:
%Vor%Allerdings macht diese Version etwas mehr Arbeit, also empfehle ich die erste.
Tags und Links php