¿Cómo fusionar dos matrices tomando solo valores de la segunda matriz que tiene las mismas claves que la primera?
Me gustaría fusionar dos matrices entre sí:
$filtered = array(1 => 'a', 3 => 'c');
$changed = array(2 => 'b*', 3 => 'c*');
ientras que la fusión debe incluir todos los elementos de$filtered
y todos esos elementos de$changed
que tienen una clave correspondiente en$filtered
:
$merged = array(1 => 'a', 3 => 'c*');
array_merge($filtered, $changed)
agregaría las claves adicionales de$changed
dentro$filtered
también. Por lo tanto, realmente no encaja.
Sé que puedo usar$keys = array_intersect_key($filtered, $changed)
para obtener las claves que existen en ambas matrices, que ya es la mitad del trabajo.
in embargo, me pregunto si hay alguna función (nativa) que pueda reducir la$changed
matriz en una matriz con la$keys
especificado porarray_intersect_key
? Sé que puedo usararray_filter
con una función de devolución de llamada y verificar con$keys
allí, pero probablemente exista alguna otra función puramente nativa para extraer solo esos elementos de una matriz de los cuales se pueden especificar las claves?
Pregunto porque las funciones nativas suelen ser mucho más rápidas quearray_filter
con una devolución de llamada.