2011-07-21 13 views
5

me gusta aprender cómo combinar dos matriz asociativa que tiene mismas claves, pero diferentes valores como la forma en que hacemos en jQuery con var options = $.extend(defaults, options);valores de anulación matriz con otra

$first = array("name"=>"John","last_name"=>"McDonald","City"=>"World"); //default values 
$second = array("name"=>"Michael","last_name"=>"Jackson"); //user provided 

$result = combine($first,$second); 

//output array("name"=>"Michael","last_name"=>"Jackson","City"=>"World"); 

Busco algo built-in en lugar de escribir una función completamente nueva para proporcionar esta característica. Por supuesto, si tienes algo ordenado, házmelo saber.

Gracias ...

Respuesta

21
$result = array_merge($first, $second); 

Mientras usted está tratando con claves de cadena, array_merge hace exactamente lo que quieres. Las dos matrices se combinan, y cuando las dos tienen las mismas claves, los valores de $second sobrescriben los valores de $first.

+0

Acabas de salvar mi día. – Tarik

+1

Sí, es bueno con un pequeño inconveniente. ¡Array_merge reordenará las teclas numéricas! Por lo tanto, si tiene claves numéricas en su matriz (por ejemplo, valores constantes numéricos), entonces no puede usar array_merge correctamente. – DarkSide

0

se puede repetir en la segunda matriz y configuración de cada elemento en la primera matriz

2

creo array_merge() o array_combine() son las funciones que usted está buscando.

+0

+1 para 'matriz_combina()'. PHP tiene muchas funciones incorporadas que me encantan. – Tarik

+1

¿Por qué +1 para 'array_combine()'? 'array_combine()' no va a hacer nada aquí si tiene la matriz descrita por OP. 'array_combine()' combina una matriz de claves con una matriz de valores. –

0

creo array_merge() o array_combine() son las funciones que usted está buscando array_merge() se pueden emplear para fusionar la matriz de dos que se llaman más. y array_combine() las teclas de una matriz con los valores de otra matriz.

Cuestiones relacionadas