Função array_replace_recursive() do PHP
Exemplo
Usar recursivamente os valores do segundo array ($a2) para substituir os valores do primeiro array ($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)); ?>
Definição e uso
A função array_replace_recursive() usa recursivamente os valores do array posterior para substituir os valores do primeiro array.
Dica:Você pode passar um array para a função, ou vários arrays.
Se uma chave existir no primeiro array array1 Também existe no segundo array array2O primeiro array array1 Os valores serão substituídos pelos valores do segundo array array2 Se uma chave existir no segundo array array1, ele permanecerá inalterado. array2, mas não existe no primeiro array array1, array1 No meio de criar esse elemento. Se forem passados vários arrays de substituição, eles serão processados em ordem, e os valores dos arrays posteriores cobrirão os valores dos arrays anteriores.
Notas:Se não for especificado uma chave para cada array, o comportamento da função será equivalente a array_replace() função.
sintaxe
array_replace_recursive(array1,array2,array3...)
...) | Parâmetros |
---|---|
array1 | Descrição |
array2 | Obrigatório. Especificar array array1 Opcional. Especificar arrays a substituir |
array3,... | Opcional. Especificar múltiplos arrays a substituir array1 e array2do array de ... . Os valores dos arrays posteriores substituirão os valores dos arrays anteriores. |
Detalhes técnicos
Retorno: | Retorna o array substituído, se ocorrer erro retorna NULL. |
Versão PHP: | 5.3.0+ |
Mais exemplos
Exemplo 1
Múltiplos arrays:
<?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)); ?>
Exemplo 2
Diferenças entre array_replace() e 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); ?>