###デモデータ1
PHP
1$demo_A['1111'] = [ 2 ['id' => 1111, 'body' => 'text1'], 3 ['id' => 1111, 'body' => 'text2'], 4 ['id' => 1111, 'body' => 'text3'], 5]; 6$demo_A['2222'] = [ 7 ['id' => 2222, 'body' => 'text1'], 8 ['id' => 2222, 'body' => 'text2'], 9 ['id' => 2222, 'body' => 'text3'], 10];
まず一つ目の配列として、上記のようなデータを用意しているとします。
次に、別の配列データとして下記のようなデータがあったとします。
PHP
1$demo_B['demoData'] = [ 2 ['id' => 2222, 'body' => 'text_A1'], 3];
###やりたいこと
やりたいこととしては、上記の$demo_Aの配列と$demo_Bの配列の結合ではあります。
###最終的になってほしい配列
PHP
1$marge_demo['1111'] = [ 2 ['id' => 1111, 'body' => 'text1'], 3 ['id' => 1111, 'body' => 'text2'], 4 ['id' => 1111, 'body' => 'text3'], 5]; 6$marge_demo['1111']['demoData'] = [ 7 ['id' => 1111, 'body' => ''], 8]; 9 10$marge_demo['2222'] = [ 11 ['id' => 2222, 'body' => 'text1'], 12 ['id' => 2222, 'body' => 'text2'], 13 ['id' => 2222, 'body' => 'text3'], 14]; 15$marge_demo['2222']['demoData'] = [ 16 ['id' => 2222, 'body' => 'text_A1'], 17];
var_dumpした結果も載せておきます
PHP
1array(2) { 2 [1111]=> 3 array(4) { 4 [0]=> 5 array(2) { 6 ["id"]=> 7 int(1111) 8 ["body"]=> 9 string(5) "text1" 10 } 11 [1]=> 12 array(2) { 13 ["id"]=> 14 int(1111) 15 ["body"]=> 16 string(5) "text2" 17 } 18 [2]=> 19 array(2) { 20 ["id"]=> 21 int(1111) 22 ["body"]=> 23 string(5) "text3" 24 } 25 ["demoData"]=> 26 array(1) { 27 [0]=> 28 array(2) { 29 ["id"]=> 30 int(1111) 31 ["body"]=> 32 string(0) "" 33 } 34 } 35 } 36 [2222]=> 37 array(4) { 38 [0]=> 39 array(2) { 40 ["id"]=> 41 int(2222) 42 ["body"]=> 43 string(5) "text1" 44 } 45 [1]=> 46 array(2) { 47 ["id"]=> 48 int(2222) 49 ["body"]=> 50 string(5) "text2" 51 } 52 [2]=> 53 array(2) { 54 ["id"]=> 55 int(2222) 56 ["body"]=> 57 string(5) "text3" 58 } 59 ["demoData"]=> 60 array(1) { 61 [0]=> 62 array(2) { 63 ["id"]=> 64 int(2222) 65 ["body"]=> 66 string(7) "text_A1" 67 } 68 } 69 } 70}
###やってみたこと
PHP
1foreach($demo_B as $B) { 2 $key_id = $B['id']; 3 $marge_demo[$key_id]['demoData'] = $B; 4}
###最後に
今回のデモデータにおいては、demo_Aの二つの情報に対して一つしか無い状況ではありましたが、当然両方に対するデータがある場合もあります。
そして、demo_B自体が無い場合もあります。
データが有る無しに関わらず、上記のような配列を作成することができればと思っています。
あくまでも$marge_demoという配列の中で、idごとに配列が作られているという状況が望ましいです。
わかりづらい部分もありますが、よろしくお願いいたします。
###追記1
すみません。確認ミスですが、少しデモデータの方ミスがありました。
それと、今自分がやってることのコードも書きました。
###解決策
ずっと見てたのであれでしたが、、、
一旦demo_Aの配列とはある意味別にdemo_Bのデータを上記やってみたことによって、くっつけたようにできているので、その次に$marge_demoを回しながら['demoData']が存在するかをチェックして、存在していればそのままにし、存在していなければまぁその分の配列を追加すれば良いなという事に気づきました。
ご指摘や回答大変参考になりました。
お手数をおかけしましたが、一旦これでやっていってみようと思っていますので、こちらの質問を一度解決とさせていただきます。
ありがとうございました。
回答3件
あなたの回答
tips
プレビュー