質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

2回答

122閲覧

2つの配列の差分を追加要素として既存の配列に追加したい

teaAI

総合スコア36

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2018/08/28 08:30

PHP

1配列A 20 => array:4 [3 0 => "testUser-1" 4 1 => "リードの検索" 5 2 => "流入経路"     6] 71 => array:4 [8 0 => "testUser-2" 9 1 => "リードの検索" 10 2 => "流入経路"     11] 122 => array:4 [13 0 => "testUser-3" 14 1 => "リードの検索" 15 2 => "流入経路"     16] 17 18配列B 190 => array:2 [20 0 => "testUser-1" 21 1 => "目標タイトル-1" 22] 231 => array:2 [24 0 => "testUser-2" 25 1 => "目標タイトル-2" 26] 27

上記のような2つの配列があった場合、配列Aへの追加要素として、配列Bの差分のみを格納することは可能でしょうか?
ループで色々試し、下記の様に取得したいのですが上手くいかずにいます。何かご教授いただけると助かります。

PHP

1配列A 20 => array:4 [3 0 => "testUser-1" 4 1 => "リードの検索" 5 2 => "流入経路" 6 3 => "目標タイトル-1" 7] 81 => array:4 [9 0 => "testUser-2" 10 1 => "リードの検索" 11 2 => "流入経路" 12 3 => "目標タイトル-2" 13] 142 => array:4 [15 0 => "testUser-3" 16 1 => "リードの検索" 17 2 => "流入経路"     18]

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

こんな感じですかね?

PHP

1 2$a=[ 3 ["testUser-1","リードの検索","流入経路"], 4 ["testUser-2","リードの検索","流入経路"], 5 ["testUser-3","リードの検索","流入経路"], 6]; 7 8$b=[ 9 ["testUser-1","目標タイトル-1"], 10 ["testUser-2","目標タイトル-2"], 11 ]; 12foreach($a as &$x){ 13 $z=array_filter($b,function($y) use($x){ return $x[0]==$y[0];}); 14 array_walk($z,function($y) use(&$x){$x[]=$y[1];}); 15} 16print_r($a);

投稿2018/08/28 09:20

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

もっといい方法ある気もするけど

php

1<?php 2 $a = [ 3 0 => [ 4 0 => "testUser-1", 5 1 => "リードの検索", 6 2 => "流入経路", 7 ], 8 1 => [ 9 0 => "testUser-2", 10 1 => "リードの検索", 11 2 => "流入経路", 12 ], 13 2 => [ 14 0 => "testUser-3", 15 1 => "リードの検索", 16 2 => "流入経路", 17 ], 18 ]; 19 $b = [ 20 0 => [ 21 0 => "testUser-1", 22 1 => "目標タイトル-1", 23 ], 24 1 => [ 25 0 => "testUser-2", 26 1 => "目標タイトル-2", 27 ], 28 ]; 29 30 $keys = array_unique(array_merge(array_keys($a), array_keys($b))); 31 32 $c = []; 33 $d = []; 34 foreach($keys as $key) { 35 $c[$key] = array_unique(array_merge($a[$key] ?? [], $b[$key] ?? [])); 36 $d[$key] = array_merge($a[$key] ?? [], array_diff($b[$key] ?? [], $a[$key] ?? [])); 37 } 38 var_dump($c); 39 var_dump($d);

投稿2018/08/28 08:59

rururu3

総合スコア5545

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問