$array1 = array("$name1" => "$id1");
$array2 = array("$name2" => "$id2", "$name3" => "$id3");
Ich brauche ein neues Array, das alles miteinander kombiniert, dh es wäre
$array3 = array("$name1" => "$id1", "$name2" => "$id2", "$name3" => "$id3");
Was ist der beste Weg, dies zu tun?
Entschuldigung, ich habe vergessen, die IDs werden niemals miteinander übereinstimmen, aber technisch könnten die Namen, wären aber nicht wahrscheinlich, und sie müssen alle in einem Array aufgelistet werden. Ich habe mir array_merge angesehen, war mir aber nicht sicher, ob dies der beste Weg ist. Wie würden Sie dies testen?
php
arrays
multidimensional-array
associative-array
jsteinmann
quelle
quelle
Antworten:
array_merge()
ist effizienter, aber es gibt einige Möglichkeiten:quelle
array_merge
NULL zurückgegeben wird, wenn eines der Argumente NULL ist.Auschecken
array_merge()
.quelle
Es gibt auch
array_replace
Fälle, in denen ein ursprüngliches Array durch andere Arrays geändert wird, wobei die Zuordnung von Schlüssel => Wert beibehalten wird, ohne dass doppelte Schlüssel erstellt werden.quelle
Ich benutze einen Wrapper um array_merge, um mit SeanWMs Kommentar zu Null-Arrays umzugehen. Ich möchte auch manchmal Duplikate loswerden. Ich möchte im Allgemeinen auch ein Array in ein anderes zusammenführen, anstatt ein neues Array zu erstellen. Dies endet als:
quelle
Wenn es sich um ein numerisches, aber kein sequentielles assoziatives Array handelt, müssen Sie es verwenden
array_replace
quelle
Ich bin auf diese Frage gestoßen, als ich versucht habe, einen sauberen Weg zu finden, um zwei Assoc-Arrays zu verbinden.
Ich habe versucht, zwei verschiedene Tabellen zu verbinden, die keine Beziehung zueinander hatten.
Dies ist, was ich mir für PDO Query ausgedacht habe, um zwei Tabellen zu verbinden. Samuel Cook hat für mich eine Lösung mit der
array_merge()
+1 für ihn identifiziert .Vielleicht hilft das jemand anderem.
quelle
UPDATE Nur eine kurze Anmerkung, wie ich sehen kann, sieht das wirklich dumm aus, und es hat keine gute Verwendung mit reinem PHP, weil das
array_merge
nur dort funktioniert. ABER versuchen Sie es mit dem PHP MongoDB-Treiber, bevor Sie schnell abstimmen. Dieser Typ wird aus irgendeinem Grund Indizes hinzufügen und das zusammengeführte Objekt ruinieren. Mit meiner naiven kleinen Funktion kommt die Verschmelzung genau so heraus, wie es mit einer traditionellen Funktion beabsichtigt wararray_merge
.Ich weiß , es ist eine alte Frage , aber ich möchte einen weiteren Fall füge ich mit MongoDB - Treiber - Abfragen und keiner hatte vor kurzem
array_merge
,array_replace
nocharray_push
gearbeitet. Ich hatte eine etwas komplexe Struktur von Objekten, die als Arrays in Arrays verpackt waren:Und ich musste sie zusammenführen und dabei die gleiche Struktur beibehalten:
Die beste Lösung, die ich gefunden habe, war folgende:
quelle