我想将两个数组相互合并:
$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的数组?我知道我可以使用回调函数并在其中进行检查,但是可能还有其他一些纯本机函数可以仅从可以指定键的数组中提取那些元素?$keysarray_intersect_keyarray_filter$keys
我问是因为本机函数通常比array_filter回调快得多。