Ich versuche, die Elemente eines Arrays mit Werten aus einem anderen zu überschreiben - ohne erstellen zusätzliche Elemente in dem Prozess.PHP array_replace ohne Schlüssel zu erstellen
Zum Beispiel:
$base = array('a' => 'apple', 'b' => 'banana');
$replace = array('a' => 'orange', 'b' => 'grape', 'c' => 'cauliflower');
die Arrays Merge zu erstellen:
array('a' => 'orange', 'b' => 'grape'); // 'c' not included
Verwendung array_merge oder array_replace würden die Elemente richtig zu überschreiben, sondern die sich ergebende Anordnung würde Elemente umfassen nicht gefunden in der ersten Reihe.
Wie kann ich zwei Arrays kombinieren, um ein Array zu erstellen, das nur die Schlüssel aus dem ersten Array und die entsprechenden Werte aus einem zweiten Array enthält?
Gibt es eine vorhandene PHP-Array-Funktion, die dies tun kann?
Danke für Ihre Hilfe!
warum nicht nur array_intersect_key ($ ersetzen, $ Base)? während der Überprüfung der Dokumentation [link] http://www.php.net/manual/en/function.array-intersect-key.php "Beachten Sie auch, dass die Werte für die Schlüssel 'blau' und 'grün' zwischen den beiden unterscheiden Eine Übereinstimmung tritt immer noch auf, da nur die Schlüssel überprüft werden. Die zurückgegebenen Werte sind die Werte von array1. " Also ich denke Array_merge ist nicht erforderlich. – coderkane
@coderkane: Denn wenn '$ ersetzen 'nicht alle Schlüssel enthält, die $ Base hat das Ergebnis fehlende Werte. – Jon
Ich bin mir bewusst, aber das OP hat gesagt, er will Werte nur aus dem zweiten Array.Es ist jedoch möglich, dass er dieses Szenario nicht vorausgesehen hat, so gut, darauf hinweisen. – coderkane