


Array-Elemente mit untergeordneten Elementen eines anderen Arrays zusammenführen
Oct 15, 2025 pm 12:36 PMIn diesem Artikel wird detailliert beschrieben, wie Elemente eines flachen Arrays mit dem Ende jedes Unterarrays eines anderen mehrdimensionalen Arrays zusammengeführt werden. Durch die Verwendung von ?array_walk“ zum Durchlaufen des Hauptarrays in Kombination mit ?array_merge“ zum Anh?ngen der entsprechenden Elemente an das Unterarray bietet dieses Tutorial eine effiziente und praktische PHP-L?sung und erkl?rt gleichzeitig das Verhalten von ?array_merge“ beim Umgang mit numerischen Schlüsseln.
Array-Zusammenführung: Reduzierte Array-Elemente an untergeordnete mehrdimensionale Arrays anh?ngen
Bei der PHP-Programmierung sto?en wir h?ufig auf Situationen, in denen wir Daten aus Arrays unterschiedlicher Struktur integrieren müssen. Dieses Tutorial konzentriert sich auf ein bestimmtes Szenario: das Anh?ngen jedes Elements eines flachen Arrays entsprechend seinem Schlüssel an das Ende eines Unterarrays des entsprechenden Schlüssels in einem anderen mehrdimensionalen Array. Dieser Vorgang ist nützlich, wenn Sie mit verwandten Datensammlungen arbeiten, beispielsweise beim Hinzufügen zus?tzlicher verwandter Attribute (Elemente eines flachen Arrays) zu einem Hauptdatensatz (einem untergeordneten Element eines mehrdimensionalen Arrays).
Szenenbeschreibung
Angenommen, wir haben zwei Arrays, $a ist ein mehrdimensionales Array mit Schlüsseln der obersten Ebene, die mehreren Unterarrays entsprechen. $b ist ein flaches Array, dessen Schlüssel mit den Schlüsseln der obersten Ebene von $a übereinstimmen und dessen Werte die Elemente sind, die an das entsprechende Unterarray von $a angeh?ngt werden müssen.
Die anf?ngliche Array-Struktur ist wie folgt:
$a = [ 1 => [ 1 => "a", 2 => "b", 3 => "c" ], 2 => [ 1 => "d", 2 => "e", 3 => "f" ], 3 => [ 1 => "g", 2 => "h", 3 => ?i“ ] ]; $b = [ 1 => "1", 2 => "2", 3 => ?3“ ];
Unser Ziel ist es, das Element in $b, das dem Schlüssel der obersten Ebene von $a entspricht, an das Ende jedes Unterarrays in $a anzuh?ngen. Beispielsweise sollte der Wert ?1“ von $b[1] zum Array $a[1] hinzugefügt werden.
L?sung: Verwenden Sie array_walk und array_merge
PHP bietet die Funktion array_walk, die jedes Element des Arrays durchlaufen und für jedes Element eine benutzerdefinierte Rückruffunktion ausführen kann. In Kombination mit der Funktion array_merge k?nnen wir die erforderlichen Array-Zusammenführungsvorg?nge effizient implementieren.
Hier ist der Code zum Implementieren dieser Funktionalit?t:
?a“, 2 => ?b“, 3 => ?c“]) // $key ist der aktuelle Schlüssel der obersten Ebene in $a (z. B. 1) // $b_array ist das gesamte durch Verwendung übergebene $b-Array // Konvertieren Sie die Elemente des entsprechenden Schlüssels in $b_array in ein Array und führen Sie sie dann mit $item zusammen // array_merge indiziert den numerischen Schlüssel neu $result[$key] = array_merge($item, (array) $b_array[$key]); }, $b); // Das $b-Array als Benutzerdaten an die Rückruffunktion übergeben // Das zusammengeführte Ergebnis ausgeben var_dump($result); ?>
Code-Analyse
- $result = []; : Wir initialisieren ein leeres Array $result, um die endgültigen zusammengeführten Daten zu speichern. Dies liegt daran, dass array_walk standardm??ig nicht das ursprüngliche Array ?ndert, sondern Operationen für jedes Element ausführt. Durch die Verwendung von (&$result) k?nnen wir das $result-Array in der Callback-Funktion ?ndern.
- array_walk($a, function($item, $key, $b_array) use (&$result) { ... }, $b); :
- $a ist das Hauptarray, über das wir iterieren m?chten.
- Die anonyme Funktion ist ein Rückruf, der für jedes Element in $a ausgeführt wird.
- $item: Das Unterarray im aktuell durchlaufenen $a-Array (z. B. [1 => ?a“, 2 => ?b“, 3 => ?c“]).
- $key: Der Schlüssel des aktuellen Subarrays in $a (zum Beispiel 1).
- $b_array: Dies ist das gesamte flache Array, das über den dritten Parameter $b von array_walk übergeben wird.
- use (&$result): Erm?glicht der Callback-Funktion den Zugriff auf die Variable $result und deren ?nderung.
- $b: Als dritter Parameter von array_walk wird er an den dritten Parameter $b_array der Rückruffunktion übergeben.
- $result[$key] = array_merge($item, (array) $b_array[$key]); :
- $b_array[$key] Ruft das Element im $b-Array ab, das dem aktuellen $a-Subarray-Schlüssel entspricht (z. B. ?1“).
- (array) $b_array[$key] Wandelt diesen Skalarwert in ein Array um. Beispielsweise wird ?1“ zu [0 => ?1“]. Dies ist ein Format, das array_merge verarbeiten kann.
- array_merge($item, ...) Führt das aktuelle Subarray $item mit dem konvertierten Array von $b Elementen zusammen.
Ausgabeergebnisanalyse
Nach der Ausführung des obigen Codes zeigt var_dump($result) die folgende Ausgabe an:
array(3) { [1]=> array(4) { [0]=> string(1) ?a“ [1]=> string(1) ?b“ [2]=> string(1) ?c“ [3]=> string(1) ?1“ } [2]=> array(4) { [0]=> string(1) ?d“ [1]=> string(1) ?e“ [2]=> string(1) ?f“ [3]=> string(1) ?2“ } [3]=> array(4) { [0]=> string(1) ?g“ [1]=> string(1) ?h“ [2]=> string(1) ?i“ [3]=> string(1) ?3“ } }
Hinweis: Array_merges Umgang mit numerischen Tasten
Es ist wichtig zu beachten, dass bei Verwendung von array_merge zum Zusammenführen von Arrays mit numerischen Schlüsseln diese numerischen Schlüssel neu indiziert werden, beginnend bei 0. In unserem Beispiel lautet das Ergebnis, nachdem das ursprüngliche Unterarray [1 => ?a“, 2 => ?b“, 3 => ?c“] mit [0 => ?1“] zusammengeführt wurde, [0 => ?a“, 1 => ?b“, 2 => ?c“, 3 => ?1“]. Wenn Sie den ursprünglichen numerischen Schlüssel beibehalten und einen bestimmten neuen numerischen Schlüssel (z. B. 4) hinzufügen m?chten, ist das Verhalten von array_merge m?glicherweise nicht wie erwartet und Sie müssen die direkte Zuweisung verwenden: $result[$key][4] = $b_array[$key];. Für das in diesem Tutorial beschriebene Szenario, in dem Elemente einfach am Ende angeh?ngt werden, ist das Verhalten von array_merge jedoch akzeptabel.
Zusammenfassen
Durch die geschickte Kombination der Durchlauff?higkeiten von array_walk und der Zusammenführungsf?higkeiten von array_merge k?nnen wir die spezifische Aufgabe, die Elemente eines flachen Arrays an die untergeordneten Elemente eines anderen mehrdimensionalen Arrays anzuh?ngen, effizient umsetzen. Es ist wichtig, das Verhalten von array_merge beim Umgang mit numerischen Tasten zu verstehen, um sicherzustellen, dass das Endergebnis wie erwartet ist. Dieser Modus ist sehr praktisch bei der Verarbeitung und Konvertierung komplexer Datenstrukturen und eine wichtige F?higkeit bei PHP-Array-Operationen.
Das obige ist der detaillierte Inhalt vonArray-Elemente mit untergeordneten Elementen eines anderen Arrays zusammenführen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Hei?e KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen

Hei?er Artikel

Hei?e Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

UseFilter_var () tovalateMailSyntaxandCheckdnsrr () tuverifyDomainMxRecords.Example: $ EMAMME = "User@example.com"; if (f ilter_var ($ mail, filter_validate_email) && checkDnsrr (explode ('@', $ mail) [1], 'mx') {echo "validandDeliverableMail & qu

UseUnSerialize (Serialize ($ OBJ)) FODEPCOPYPYWIEDALLDATAISSERIALIZIABLE; Andernfalls implementieren Sie __Clone () TomanuelleduplicatenestoBjectSandavoidSharedReferences.

Usearray_merge () tocombinearrays, überschreibende DuplicatestringKeysandReindexingnumericKeys;

NamespacesinphporganizeCodeAndPreventnamingConflictsByGroupingclasses, Schnittstellen, Funktionen und Constantsunderaspecificname.2.DefineAnaceStHenameSpaceKeyWorthetopoFafile, gefolgt von BythenameSpacename, solcheasapp \ controllers.3.

ToupDateadatabaserecordinphp, FirstConnectusepdoOrmysqli, ThenuSePreparedStatementStoExexexeSecuresQLUPDateQuery.example: $ pdo = newpdo ("MySQL: Host = LocalHost; dbname = your_database", $ username, $ username, $ username);

The__call () methodistiggeredWenaninAccessibleorundEfinedMethodiscalledonanObject, erlaubt CustomHandlingByaccepthodnameandargumente, ashownwhencallingundEfinedMethodselikesayhello (). 2.The__get () methodisinvokedInacescessininginingininginingininginingininginingininginingincessibleceschessibleChessibleChessibleornonon-EX

Verwenden Sie die Ziparchive -Klasse, um eine ZIP -Datei zu erstellen. Erster instanziiert und ?ffnen Sie das Zielzip, fügen Sie Dateien mit Addfile hinzu, unterstützen Sie benutzerdefinierte interne Pfade, rekursive Funktionen k?nnen das gesamte Verzeichnis verpacken und schlie?lich kurz vor dem Speichern rufen, um sicherzustellen, dass PHP Schreibberechtigungen verfügt.

Usepathinfo ($ filename, pathinfo_extension) togetTheFilextesion; itrelablyHandlesMultiPleDOTSandgeCases, ReturningTheExtesion (z.
