我想将两个数组相互合并:
$filtered = array(1 => 'a', 3 => 'c');
$changed = array(2 => 'b*', 3 => 'c*');
鉴于合并应包括 的所有元素,$filtered
并且所有这些元素在$changed
中具有相应的键$filtered
:
$merged = array(1 => 'a', 3 => 'c*');
array_merge($filtered, $changed)
$changed
也会添加into的附加键$filtered
。所以它真的不适合。
我知道我可以$keys = array_intersect_key($filtered, $changed)
用来获取两个数组中存在的键,这已经是工作的一半。
但是我想知道是否有任何(本机)函数可以将数组减少为由指定$changed
的数组?我知道我可以使用回调函数并在其中进行检查,但是可能还有其他一些纯本机函数可以仅从可以指定键的数组中提取那些元素?$keys
array_intersect_key
array_filter
$keys
我问是因为本机函数通常比array_filter
回调快得多。