2 つの配列を互いにマージしたいと思います。
$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
ます$filtered
。だから本当に合わない。
両方の配列に存在するキーを取得するために使用できることはわかってい$keys = array_intersect_key($filtered, $changed)
ますが、これはすでに作業の半分です。
ただし、配列を指定され$changed
た配列に縮小できる(ネイティブ)関数があるかどうか疑問に思っています? コールバック関数を使用してチェックできることはわかっていますが、キーを指定できる配列から要素のみを抽出する純粋なネイティブ関数が他にあるのではないでしょうか?$keys
array_intersect_key
array_filter
$keys
array_filter
ネイティブ関数は多くの場合、コールバックよりもはるかに高速であるため、私が尋ねています。