1

PHPで2つの配列を1つに結合したいと思います。このサイトで同様の質問を検索しましたが、答えが見つからないようです。

Array 1
(
[0] => Array
    (
        [LOGIN] => 123
        [CITY] => bangkok
        [GROUP] => bangkok-a
        [PREV_A] => 123.4
        [PREV_B] => 456.7
    )

[1] => Array
    (
        [LOGIN] => 456
        [CITY] => bangkok
        [GROUP] => bangkok-b
        [PREV_A] => 987.6
        [PREV_B] => 654.3
    )
)

Array 2
(
[0] => Array
    (
        [LOGIN] => 123
        [CITY] => bangkok
        [GROUP] => bangkok-a
        [A] => 555.5
        [B] => 666.6
    )

[1] => Array
    (
        [LOGIN] => 456
        [CITY] => bangkok
        [GROUP] => bangkok-b
        [A] => 777.7
        [B] => 888.8
    )
)

結果の配列は次のようになります。

Array 3
(
[0] => Array
    (
        [LOGIN] => 123
        [CITY] => bangkok
        [GROUP] => bangkok-a
        [PREV_A] => 123.4
        [PREV_B] => 456.7
        [A] => 555.5
        [B] => 666.6
    )

[1] => Array
    (
        [LOGIN] => 456
        [CITY] => bangkok
        [GROUP] => bangkok-b
        [PREV_A] => 987.6
        [PREV_B] => 654.3
        [A] => 777.7
        [B] => 888.8
    )
)

各配列は64です。このコードを試しましたが、結果の配列には4096(= 64x64)フィールドがあり、64ではありません。

foreach($arr1 as $x){
    foreach($arr2 as $y){
        if ($x['LOGIN']=$y['LOGIN']){
            $tmp=array();
            $tmp=array_merge($x,$y);
            array_push($res,$tmp);
        }
    }
}

それらを正しく組み合わせるにはどうすればよいですか?ありがとうございました。

4

1 に答える 1

2

どうですか:

$newArray = Array();
foreach($arr1 as $k=>$val)
{
    if(array_key_exists($k, $arr2))
    {
        $newArray[$k] = array_merge($val, $arr2[$k]);
    }
}

テストはしていませんが、うまくいくはずです...

于 2013-02-21T04:27:47.747 に答える