Zum Inhalt springen

PHP-Funktion: array_replace_recursive()

Die array_replace_recursive()-Funktion in PHP ist ein leistungsfähiges Werkzeug zum Zusammenführen von Arrays, wobei die Struktur und die Schlüssel der ursprünglichen Arrays beibehalten werden. Sie funktioniert, indem Elemente im ersten Array rekursiv durch Elemente aus nachfolgenden Arrays ersetzt werden. Diese Funktion kann besonders nützlich sein, wenn man mit Arrays von Arrays arbeitet, da sie eine einfache Modifikation verschachtelter Arrays ohne Datenverlust ermöglicht.

Syntax

Die Syntax der array_replace_recursive()-Funktion ist übersichtlich: Das erste Argument ist das Array, das modifiziert wird, und nachfolgende Argumente sind Arrays, aus denen Elemente in das erste Array zusammengeführt werden.

PHP array_replace_recursive function syntax

php
array_replace_recursive ( array &$array1, array $array2 [, array ...$arrayN ] ) : array

Funktionsweise

Die Funktion array_replace_recursive() funktioniert, indem sie über alle Elemente der als Argumente übergebenen Arrays iteriert. Für jedes Element prüft die Funktion, ob der Schlüssel im ersten Array existiert. Wenn der Schlüssel nicht existiert, wird das Element einfach zum ersten Array hinzugefügt. Wenn der Schlüssel existiert, prüft die Funktion, ob der Wert ein Array ist. Falls ja, ruft die Funktion sich selbst rekursiv mit dem aktuellen Wert im ersten Array und dem entsprechenden Wert im zweiten Array als Argumenten auf. Ist der Wert kein Array, wird er einfach durch den Wert aus dem zweiten Array ersetzt.

Dieser Vorgang wird für alle nachfolgenden Arrays, die als Argumente übergeben werden, wiederholt, wobei Elemente nach Bedarf zum ersten Array hinzugefügt oder ersetzt werden. Das Endergebnis ist ein einzelnes Array, das aus dem Zusammenführen aller Elemente der Eingabearrays resultiert. Hinweis: Im Gegensatz zu array_merge_recursive() ersetzt diese Funktion numerische Schlüssel, anstatt sie nach Index zusammenzuführen.

Beispiele

Hier sind einige Beispiele dafür, wie die Funktion array_replace_recursive() in der Praxis eingesetzt werden kann:

PHP example of array_replace_recursive function usage

php
<?php

$array1 = ['a' => ['b' => 'c']];
$array2 = ['a' => ['b' => 'd']];

$result = array_replace_recursive($array1, $array2);

print_r($result);

?>

Die Ausgabe dieses Codes lautet:


console
Array
(
    [a] => Array
        (
            [b] => d
        )
)

Wie Sie sehen können, wurde der Wert des Schlüssels "b" im ersten Array durch den entsprechenden Wert aus dem zweiten Array ersetzt.

Ein weiteres Beispiel:

PHP Another example of array_replace_recursive function usage

php
<?php

$array1 = ['a' => ['b' => 'c']];
$array2 = ['a' => 'd'];

$result = array_replace_recursive($array1, $array2);

print_r($result);

?>

Die Ausgabe dieses Codes lautet:


console
Array
(
    [a] => d
)

In diesem Fall hat der Schlüssel "a" im zweiten Array den entsprechenden Wert im ersten Array ersetzt, einschließlich des verschachtelten Arrays.

Fazit

Zusammenfassend bietet die Funktion array_replace_recursive() in PHP eine praktische Möglichkeit, Arrays zusammenzuführen, während ihre ursprüngliche Struktur und ihre Schlüssel erhalten bleiben. Sie ist besonders wertvoll für die Aktualisierung verschachtelter Konfigurationsdaten oder das Zusammenführen strukturierter Datensätze ohne manuelle Iteration.

Praxis

Was macht die Funktion array_replace_recursive() in PHP?

Finden Sie das nützlich?

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