0

次のように2つの配列があります。

アレイ I:

Array
(
    [0] => Array
        (
            [did] => 1
            [dname] => AJAy
            [dsp] => 3
            [dqu] => abc
            [isactive] => Y
        )
    [1] => Array
        (
            [did] => 2
            [dname] => Vijay
            [dsp] => 4
            [dqu] => abc
            [isactive] => Y
        )
)

アレイ II:

Array
(
    [0] => Array
        (
            [recno] => 1
            [dname] => AJAy
            [dsp] =>
            [did]=>
            [dqu] => 
            [isactive] => Y
        )
    [1] => Array
        (
            [recno] => 2
            [dname] => Vijay
            [dsp] =>
            [did]=>
            [dqu] => 
            [isactive] => Y
        )
)

dname の一致値に基づいて、did、dsp、dqu の値を配列 I から配列 II に更新したいのですが、配列のマージを試しましたが、私の状況ではうまくいきません。助けてください

4

3 に答える 3

0

このようなもの?

<?php
$a = array
(
        0 => array
        (
                1 => 'bat'
        ),
        1 => array
        (
                10 => 'hamar'
        )
);
$b = array
(
        0 => array
        (
                2 => 'bi'
        ),
        1 => array
        (
                11 => 'hamaike'
        )
);

$length = count($a);
$tmp = array();
for($i=0;$i<$length;$i++)
{
        $tmp[$i] = array_merge($a[$i], $b[$i]);
}

print_r($tmp);
?>

編集:コメントからのarray_merge_recursiveの方が良いです:)

于 2012-03-20T13:18:06.620 に答える
0

array_combine() で試すことができます...キーに1つの配列を使用し、その値に別の配列を使用して配列を作成します..

ただし、条件を指定する必要があります。値を一致させるには..

于 2012-03-20T13:18:21.613 に答える
0

どうですか:

$arr1 = Array(
    Array(
        'did'       => 1,
        'dname'     => 'AJAy',
        'dsp'       => 3,
        'dqu'       => 'abc',
        'isactive'  => 'Y',
    ),
    Array(
        'did'       => 2,
        'dname'     => 'Vijay',
        'dsp'       => 4,
        'dqu'       => 'abc',
        'isactive'  => 'Y',
    ),
);
$arr2 = Array(
    Array(
        'recno'     => 2,
        'dname'     => 'Vijay',
        'dsp'       => '',
        'did'       => '',
        'dqu'       => '',
        'isactive'  => 'Y',
    ),
    Array(
        'recno'     => 1,
        'dname'     => 'AJAy',
        'dsp'       => '',
        'did'       => '',
        'dqu'       => '',
        'isactive'  => 'Y',
    ),
);

for($i1=0; $i1<count($arr1); $i1++) {
    for ($i2=0; $i2<count($arr2); $i2++) {
        if ($arr1[$i1]['dname'] == $arr2[$i2]['dname']) {
            $arr2[$i2]['did'] = $arr1[$i1]['did'];
            $arr2[$i2]['dsp'] = $arr1[$i1]['dsp'];
            $arr2[$i2]['dqu'] = $arr1[$i1]['dqu'];
        }
    }
}
print_r($arr2);

出力:

Array
(
    [0] => Array
        (
            [recno] => 2
            [dname] => Vijay
            [dsp] => 4
            [did] => 2
            [dqu] => abc
            [isactive] => Y
        )

    [1] => Array
        (
            [recno] => 1
            [dname] => AJAy
            [dsp] => 3
            [did] => 1
            [dqu] => abc
            [isactive] => Y
        )

)
于 2012-03-20T14:59:35.237 に答える