前提・実現したいこと
配列1と配列2の連想配列があったとして、
['id']をキー項目として配列1優先でマージしたいです。
以下のような配列があったとして
Array1= ( [1] => Array ( [id] => 1 [name] => 'りんご' ) [2] => Array ( [id] => 2 [name] => 'みかん' ) ) Array2= ( [1] => Array ( [id] => 2 [name] => 'バナナ' ) [2] => Array ( [id] => 3 [name] => 'はっさく' ) )
抽出したいデータが
Array1= ( [1] => Array ( [id] => 1 [name] => 'りんご' ) [2] => Array ( [id] => 2 [name] => 'みかん' ) [3] => Array ( [id] => 3 [name] => 'はっさく' ) )
となるようにマージしたいです。
連想配列のキーでのマージってarray_mergeでできるのでしょうか?
[id] => 2
[name] => 'みかん'
の情報を消し去るのが、マージなんですか?
['id']がキーとなり、
のちに追加されたArray2よりArray1が優先、というイメージでマージしたいです。
キーは添字ではなく、
['id']でマージしたいのです
混乱するから、半角数字と全角数字混ぜ混ぜコードは止めてほしい(ほんとにコード書いてる?)
本来のコードはDBのフィールド名が入る為、
イメージでweb上から適当な配列を引っこ抜いてきただけです。
もちろんこのコードをそのまま動かすつもりはなかったです。
普通にarray_merge(配列2,配列1)では
1,2,3のキーでマージされるんじゃないですか?
キー項目を添字ではなく「id」でマージしたいという質問でした。
(ごめんなさい明らかにダミーコードだから意図さえ伝わればいいかな程度でした)
データ構造を例示するなら、var_export()で出力したコードなら、すぐコピペでテストコードを書きやすいので、気軽に素早く回答を得たい場合は例示の仕方もお気遣いいただけると、業務多忙な折でも「回答しようかな」って気持ちが動くんです。var_dump()で出力されても、使える状態にするために書き換えが生じて、「めんどくせっ」ってスルーされやすくなります。
すいません、この辺り
知ってるか知らないかだけの話だと思ってて、
わざわざコード書いて実現してくれること想定してなかったです。
回答2件
あなたの回答
tips
プレビュー