Substitua recursivamente os valores do primeiro array ($a1) pelos valores do segundo array ($a2):
<?php$a1=array("a"=>array("vermelho"),"b"=>array("verde","azul"),);$a2=array("a"=>array( "amarelo"),"b"=>array("preto"));print_r(array_replace_recursive($a1,$a2));?>A função array_replace_recursive() substitui recursivamente os valores do primeiro array pelos valores dos arrays subsequentes.
Dica: você pode passar um array, ou vários arrays, para a função.
Se uma chave existir na primeira matriz array1 e também existir na segunda matriz array2, o valor na primeira matriz array1 será substituído pelo valor na segunda matriz array2. Se uma chave existir apenas no primeiro array array1, ela permanecerá inalterada. Se existir uma chave no segundo array, array2, mas não no primeiro array, array1, o elemento será criado no primeiro array, array1. Se vários arrays de substituição forem passados, eles serão processados em ordem e os valores dos arrays subsequentes substituirão os valores dos arrays anteriores.
Nota: Se você não especificar uma chave para cada array, esta função se comportará de forma idêntica à função array_replace().
array_replace_recursive( array1,array2,array3... )
parâmetro | descrever |
---|---|
matriz1 | Obrigatório. Especifique uma matriz. |
matriz2 | Opcional. Especifica uma matriz para substituir o valor de array1 . |
matriz3,... | Opcional. Especifique vários arrays para substituir os valores de array1 e array2, .... Os valores da matriz a seguir substituirão os valores da matriz anterior. |
Valor de retorno: | Retorna a matriz substituída ou NULL se ocorrer um erro. |
---|---|
Versão PHP: | 5.3.0+ |
Várias matrizes:
<?php$a1=array("a"=>array("vermelho"),"b"=>array("verde","azul"));$a2=array("a"=>array(" amarelo"),"b"=>array("branco k"));$a3=array("a"=>array("laranja"),"b"=>array("bordô"));print_r(array_replace_recursive($a1,$a2,$a3)); ?>Diferenças entre array_replace() e array_replace_recursive():
<?php$a1=array("a"=>array("vermelho"),"b"=>array("verde","azul"),);$a2=array("a"=>array( "amarelo"),"b"=>array("preto" ));$resultado=array_replace_recursive($a1,$a2);print_r($resultado);$resultado=array_replace($a1,$a2);print_r($resultado);?>