Zum Inhalt springen

PHP-Array-Merge: Ein detaillierter Leitfaden

Die PHP-Funktion array_merge() ist ein leistungsstarkes Werkzeug zum Kombinieren von Arrays zu einem einzigen Array. Diese Funktion nimmt zwei oder mehr Arrays als Argumente entgegen und fügt sie zu einem einzigen Array zusammen, wobei die Werte der späteren Arrays die Werte der vorherigen Arrays überschreiben, wenn die Schlüssel übereinstimmen. Hinweis: In PHP 8 löst das Übergeben von Nicht-Array-Argumenten an array_merge() einen TypeError aus. In diesem Leitfaden werden wir uns die Funktion array_merge() genauer ansehen und ihre verschiedenen Anwendungen erkunden.

Grundlegende Verwendung von array_merge()

Die grundlegende Verwendung der Funktion array_merge() ist unkompliziert. Übergeben Sie einfach zwei oder mehr Arrays als Argumente, und die Funktion gibt ein neues Array zurück, das das Ergebnis des Zusammenführens der Arrays ist. Hier ist ein Beispiel:

Beispiel für die PHP-Funktion array_merge

php
<?php

$array1 = ["color" => "red", 2, 4];
$array2 = ["a", "b", "color" => "green", "shape" => "rectangle", 4];
$result = array_merge($array1, $array2);
print_r($result);

?>

Ausgabe:

console
Array
(
    [color] => green
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => rectangle
    [4] => 4
)

Wie Sie sehen können, überschreiben die Werte aus $array2 die Werte von $array1, wenn sie denselben Schlüssel haben.

Zusammenführen mehrdimensionaler Arrays

Die Funktion array_merge() kann auch zum Zusammenführen mehrdimensionaler Arrays verwendet werden. Um mehrdimensionale Arrays zusammenzuführen, übergeben Sie einfach jedes Array als Argument an die Funktion. Hier ist ein Beispiel:

PHP: Mehrdimensionale Arrays mit array_merge_recursive zusammenführen

php
<?php

$array1 = ["color" => ["favorite" => "red"], 2, 4];
$array2 = ["a", "b", "color" => ["favorite" => "green"], "shape" => "rectangle", 4];
$result = array_merge($array1, $array2);
print_r($result);

?>

Ausgabe:

console
Array
(
    [color] => Array
        (
            [favorite] => green
        )
    [0] => 2
    [1] => 4
    [2] => a
    [3] => b
    [shape] => rectangle
    [4] => 4
)

Beachten Sie, dass array_merge() mehrdimensionale Arrays zusammenführen kann, aber verschachtelte Arrays mit demselben Schlüssel überschreibt. Um verschachtelte Arrays anzuhängen, anstatt sie zu überschreiben, verwenden Sie array_merge_recursive().

Zusammenführen eines indizierten Arrays mit einem assoziativen Array

Beim Zusammenführen eines indizierten Arrays mit einem assoziativen Array werden die Werte beider Arrays kombiniert. Hier ist ein Beispiel:

PHP-Beispiel: Zusammenführen eines indizierten Arrays mit einem assoziativen Array mittels array_merge-Funktion

php
<?php

$array1 = ["a", "b", "c"];
$array2 = ["a" => "apple", "b" => "banana", "c" => "cherry"];
$result = array_merge($array1, $array2);
print_r($result);

?>

Ausgabe:

console
Array
(
    [0] => a
    [1] => b
    [2] => c
    [a] => apple
    [b] => banana
    [c] => cherry
)

Wie Sie sehen können, werden die Werte beider Arrays kombiniert. Da die Schlüssel unterschiedliche Typen haben (numerisch vs. Zeichenkette), findet kein Überschreiben statt. Dies ist ein wichtiges Detail, das beim Zusammenführen von Arrays mit verschiedenen Schlüsseltypen zu beachten ist.

Zusammenführen eines assoziativen Arrays mit einem indizierten Array

Das Ergebnis des Zusammenführens eines assoziativen Arrays mit einem indizierten Array ist ähnlich. Die Werte werden kombiniert, und die Schlüssel werden entsprechend ihrem Typ beibehalten. Hier ist ein Beispiel:

PHP: Zusammenführen eines assoziativen Arrays mit einem indizierten Array mittels array_merge-Funktion

php
<?php

$array1 = ["a" => "apple", "b" => "banana", "c" => "cherry"];
$array2 = ["a", "b", "c"];
$result = array_merge($array1, $array2);
print_r($result);

?>

Ausgabe:

console
Array
(
    [a] => apple
    [b] => banana
    [c] => cherry
    [0] => a
    [1] => b
    [2] => c
)

Wie gezeigt, werden die Werte ohne Konflikt kombiniert. Zeichenketten-Schlüssel aus $array1 werden beibehalten, während numerische Schlüssel aus $array2 ab 0 neu indiziert werden.

Leistungsbetrachtungen

Die Funktion array_merge() hat eine lineare Zeitkomplexität, was bedeutet, dass die Zeit zum Zusammenführen von Arrays linear mit der Größe der Arrays zunimmt. Aus diesem Grund ist es wichtig, die Anzahl der zusammenzuführenden Arrays so gering wie möglich zu halten und die Funktion nicht auf extrem große Arrays anzuwenden.

Fazit

Die Funktion array_merge() ist ein vielseitiges Werkzeug zum Kombinieren von Arrays in PHP. Egal, ob Sie flache Arrays, mehrdimensionale Arrays, indizierte Arrays oder assoziative Arrays zusammenführen, diese Funktion deckt alle Fälle ab. Aufgrund ihrer linearen Zeitkomplexität ist es wichtig, die Größe der zusammenzuführenden Arrays gering zu halten, aber mit der richtigen Herangehensweise kann diese Funktion ein unschätzbares Werkzeug in Ihrem PHP-Toolkit sein.

Praxis

Was gilt über die array_merge-Funktion in PHP?

Finden Sie das nützlich?

Dual-run-Vorschau — vergleichen Sie mit den Symfony-Routen live.