在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的新手,所以我不知道..对不起)