Funkcja array_replace_recursive() w PHP
Przykład
Rekurencyjne użycie wartości z drugiej tablicy ($a2) do zastępowania wartości z pierwszej tablicy ($a1):
<?php $a1=array("a"=>array("red"),"b"=>array("green","blue"),); $a2=array("a"=>array("yellow"),"b"=>array("black")); print_r(array_replace_recursive($a1,$a2)); ?>
Definicja i użycie
Funkcja array_replace_recursive() rekurencyjnie używa wartości z tablicy następnej do zastępowania wartości z pierwszej tablicy.
Wskazówka:Możesz przekazać do funkcji tablicę, lub wiele tablic.
jeśli klucz istnieje w pierwszej tablicy array1 również istnieje w drugiej tablicy array2pierwszej tablicy array1 wartości w drugiej tablicy. array2 wartości w drugiej tablicy. array1, pozostanie niezmieniona. array2, ale nie istnieje w pierwszej tablicy array1, ale nie istnieje w pierwszej tablicy array1 utworzeniu tego elementu. Jeśli przekazano wiele tablic zastępczych, będą one przetwarzane w kolejności, a wartości tablicy następnej będą zastępować wartości tablicy poprzedniej.
Komentarz:Jeśli dla każdej tablicy nie określono klucza, zachowanie tej funkcji będzie równoważne array_replace() funkcja.
gramatyka
array_replace_recursive(array1,array2,array3...)
...) | parametry |
---|---|
array1 | opis |
array2 | wymagane. Określ tablicę array1 opcjonalnie. Określ tablicę do zastąpienia |
array3,... | opcjonalnie. Określ wiele tablic do zastąpienia array1 i array2Tablica wartości ... . Wartości tablicy położonej za pomocą kropki będą zastępować wartości tablic umieszczonych wcześniej. |
Szczegóły techniczne
Zwracana wartość: | Zwraca zastąpioną tablicę, w przypadku błędu zwraca NULL. |
Wersja PHP: | 5.3.0+ |
Więcej przykładów
Przykład 1
Wiele tablic:
<?php $a1=array("a"=>array("red"),"b"=>array("green","blue")); $a2=array("a"=>array("yellow"),"b"=>array("black")); $a3=array("a"=>array("orange"),"b"=>array("burgundy")); print_r(array_replace_recursive($a1,$a2,$a3)); ?>
Przykład 2
Różnice między array_replace() a array_replace_recursive():
<?php $a1=array("a"=>array("red"),"b"=>array("green","blue"),); $a2=array("a"=>array("yellow"),"b"=>array("black")); $result=array_replace_recursive($a1,$a2); print_r($result); $result=array_replace($a1,$a2); print_r($result); ?>