Como mesclar duas matrizes assumindo apenas os valores da segunda matriz que possui as mesmas chaves que a primeir
Gostaria de mesclar duas matrizes entre si:
$filtered = array(1 => 'a', 3 => 'c');
$changed = array(2 => 'b*', 3 => 'c*');
Considerando que a mesclagem deve incluir todos os elementos de$filtered
e todos esses elementos de$changed
que possuem uma chave correspondente em$filtered
:
$merged = array(1 => 'a', 3 => 'c*');
array_merge($filtered, $changed)
adicionaria as chaves adicionais de$changed
para dentro$filtered
também. Portanto, ele realmente não se encaix
Sei que posso usar$keys = array_intersect_key($filtered, $changed)
para obter as chaves existentes nas duas matrizes, que já são metade do trabalh
No entanto, estou me perguntando se existe alguma função (nativa) que possa reduzir o$changed
array em um array com o$keys
especificado porarray_intersect_key
? Eu sei que posso usararray_filter
com uma função de retorno de chamada e verifique$keys
, mas provavelmente existe alguma outra função puramente nativa para extrair apenas os elementos de uma matriz da qual as chaves podem ser especificada
Estou perguntando porque as funções nativas geralmente são muito mais rápidas quearray_filter
com retorno de chamada.