ある配列の要素をの値で上書きしようとしていますが、を追加するとプロセスに追加の要素が作成されます。例えばキーを作成せずにPHP array_replace
:
array('a' => 'orange', 'b' => 'grape'); // 'c' not included
をarray_merge又はarray_replaceを使用して適切に要素を上書きするだろうが、得られた配列は見出されていない要素を含むであろう:
$base = array('a' => 'apple', 'b' => 'banana');
$replace = array('a' => 'orange', 'b' => 'grape', 'c' => 'cauliflower');
を作成するアレイをマージ最初の配列で。
2つの配列を組み合わせて、最初の配列のキーと2番目の配列の対応する値のみを含む配列を作成するにはどうすればよいですか?
これを行うための既存のPHP配列関数はありますか?
ありがとうございました!
理由だけではなくarray_intersect_key($、$ベースを交換しますか)?ドキュメントをチェックしている間[link] http://www.php.net/manual/en/function.array-intersect-key.php "キーの値が青と緑で異なることに気付くキーだけがチェックされているので、一致がまだ発生します。返される値はarray1のものです。だから私はarray_mergeが必要だとは思っていません.. – coderkane
@coderkane: '$ replace'に' $ base'が持つすべてのキーが含まれていない場合、結果に欠損値があります。 – Jon
私は知っていますが、OPは彼が2番目の配列からのみ値を求めていると言っていました。しかし、彼はそのシナリオを予見しなかった可能性があるので、良い点を指摘する。 – coderkane