0

我有两个数组如下:

阵列一:

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
        )
)

阵列二:

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() ...它将通过使用一个数组作为键和另一个数组作为其值来创建一个数组。

但你必须给出条件。匹配值..

于 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 回答