Ersetzt rekursiv Elemente des ersten Arrays durch Elemente der übergebenen Arrays

# array_replace_recursive

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

array_replace_recursive — Ersetzt rekursiv Elemente des ersten Arrays durch Elemente der übergebenen Arrays

### Beschreibung

function array_replace_recursive(array `$array`, array `...$replacements`): array

array_replace_recursive() ersetzt die Werte von `array` durch die gleichen Werte aus allen folgenden Arrays. Wenn ein Schlüssel aus dem ersten Array im zweiten Array vorhanden ist, wird sein Wert durch den Wert aus dem zweiten Array ersetzt. Wenn der Schlüssel im zweiten Array vorhanden ist, aber nicht im ersten, wird er im ersten Array erstellt. Wenn ein Schlüssel nur im ersten Array vorhanden ist, wird er unverändert belassen. Wenn mehrere Arrays zum Ersetzen übergeben werden, werden sie der Reihe nach verarbeitet, wobei das spätere Array die vorherigen Werte überschreibt.

Die Funktion array_replace_recursive() ist rekursiv: sie rekursiert in Arrays und wendet den gleichen Prozess auf den inneren Wert an.

Wenn der Wert im ersten Array ein Skalar ist, wird er durch den Wert im zweiten Array ersetzt, egal ob es sich um einen Skalar oder ein Array handelt. Wenn sowohl der Wert im ersten Array als auch der Wert im zweiten Array ein Array ist, ersetzt array_replace_recursive() den jeweiligen Wert rekursiv.

### Parameter-Liste

`array`

  Das Array, dessen Elemente ersetzt werden.

`replacements`

  Arrays, aus denen Elemente ausgelesen werden sollen.

### Rückgabewerte

Gibt ein Array zurück.

### Beispiele

Beispiel #1 array_replace_recursive()-Beispiel

    <?php
    $base = array('citrus' => array("orange"), 'berries' => array("blackberry", "raspberry"));
    $replacements = array('citrus' => array('pineapple'), 'berries' => array('blueberry'));

    $basket = array_replace_recursive($base, $replacements);
    print_r($basket);

    $basket = array_replace($base, $replacements);
    print_r($basket);
    ?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Array
    (
        [citrus] => Array
            (
                [0] => pineapple
            )

        [berries] => Array
            (
                [0] => blueberry
                [1] => raspberry
            )

    )
    Array
    (
        [citrus] => Array
            (
                [0] => pineapple
            )

        [berries] => Array
            (
                [0] => blueberry
            )

    )

Beispiel #2 array_replace_recursive() und rekursives Verhalten

    <?php
    $base = array('citrus' => array("orange") , 'berries' => array("blackberry", "raspberry"), 'others' => 'banana' );
    $replacements = array('citrus' => 'pineapple', 'berries' => array('blueberry'), 'others' => array('litchis'));
    $replacements2 = array('citrus' => array('pineapple'), 'berries' => array('blueberry'), 'others' => 'litchis');

    $basket = array_replace_recursive($base, $replacements, $replacements2);
    print_r($basket);

    ?>

Das oben gezeigte Beispiel erzeugt folgende Ausgabe:

    Array
    (
        [citrus] => Array
            (
                [0] => pineapple
            )

        [berries] => Array
            (
                [0] => blueberry
                [1] => raspberry
            )

        [others] => litchis
    )

### Siehe auch

- array_replace() - Ersetzt Elemente von übergebenen Arrays im ersten Array
- array_merge_recursive() - Führt ein oder mehrere Arrays rekursiv zusammen

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open