在php中添加两个不同关联数组的值。在结果数组中也显示唯一的键值

在php中添加两个不同关联数组的值。在结果数组中也显示唯一的键值,php,associative-array,array-merge,Php,Associative Array,Array Merge,我需要合并两个关联数组,它们可能包含也可能不包含相同的键,如果键相同,则需要将值添加并存储在结果数组中 $array1 = array( 'a' => 5, 'b' => 10, 'c' => 6, 'k' = > 10 ); $array2 = array( 'a' => 100, 'c' => 200, 'd' => 30, 'k' => 10 ); 如何添加上述两个

我需要合并两个关联数组,它们可能包含也可能不包含相同的键,如果键相同,则需要将值添加并存储在结果数组中

 $array1 = array(
      'a' => 5,
      'b' => 10,
      'c' => 6,
      'k' = > 10
    );

$array2 = array(
  'a' => 100,
  'c' => 200,
  'd' => 30,
  'k' => 10
);
如何添加上述两个关联数组并接收以下输出/关联数组-

 $array2 = array(
      'a' => 105,
      'b' => 10,
      'c' => 206,
      'd' => 30,
      'k' => 20
    );
试一试

试一试


用于查找唯一索引值

$array2 =array_merge($array1,$array2);
为了找到独特的价值,你可以尝试

$array2 =array_unique(array_merge($array1,$array2));

用于查找唯一索引值

$array2 =array_merge($array1,$array2);
为了找到独特的价值,你可以尝试

$array2 =array_unique(array_merge($array1,$array2));

我不知道你是否可以用一个内部函数来实现这一点,但是通过简单地遍历两个数组是可行的

function merge_add($array1, $array2)
{
    $result = array();
    merge_add_array($array1, $result);
    merge_add_array($array2, $result);
    return $result;
}

function merge_add_array($array, &$result)
{
    foreach ($array as $key=>$value)
    {
        if (array_key_exists($key, $result))
        {
            $result[$key] += $value;
        }
        else
        {
            $result[$key] = $value;
        }
    }
}

$result = merge_add($array1, $array2);

&
将导致

我不知道是否可以使用内部函数执行此操作,但只需在两个数组中进行迭代即可

function merge_add($array1, $array2)
{
    $result = array();
    merge_add_array($array1, $result);
    merge_add_array($array2, $result);
    return $result;
}

function merge_add_array($array, &$result)
{
    foreach ($array as $key=>$value)
    {
        if (array_key_exists($key, $result))
        {
            $result[$key] += $value;
        }
        else
        {
            $result[$key] = $value;
        }
    }
}

$result = merge_add($array1, $array2);

&
将导致

请参阅工作正常…非常感谢。。。但是,你能解释一下以下部分吗?(isset($array1[$key])?$array1[$key]:0)如果你认为它有效,你应该接受他的答案Mayur@antony--我接受泰米尔·塞尔万的回答……只是想解释一下(isset($array1[$key])?$array1[$key]:0)因为我对PHP和编程都是新手。@也许你还没有接受它。你必须点击勾号。若你们想学习速记条件语句,那个么请问另一个问题或在这里阅读。先生们,它现在被接受了。。。!!!(我是stackoverflow.com的新手,所以我不知道..对不起)很好…非常感谢。。。但是,你能解释一下以下部分吗?(isset($array1[$key])?$array1[$key]:0)如果你认为它有效,你应该接受他的答案Mayur@antony--我接受泰米尔·塞尔万的回答……只是想解释一下(isset($array1[$key])?$array1[$key]:0)因为我对PHP和编程都是新手。@也许你还没有接受它。你必须点击勾号。若你们想学习速记条件语句,那个么请问另一个问题或在这里阅读。先生们,它现在被接受了。。。!!!(我是stackoverflow.com的新手,所以我不知道..对不起)