比较数组元素并根据键和值进行添加



我有两个这样的数组:

$array_1 = Array ( [0] => 4 [1] => 6 [2] => 2 [3] => 6 [4] => 4 [5] => 10 [6] => 4 [7] => 6 [8] => 2 [9] => 2 [10] => 4 [11] => 4 [12] => 2 [13] => 2 );
$array_2 = Array ( [0] => DK [1] => GA [2] => DK [3] => GA [4] => DK [5] => GA [6] => WE [7] => VE [8] => WE [9] => VE [10] => PLA [11] => PRA [12] => PLA [13] => PRA ) ;

现在我想要这样的结果:

$dk=4+2+4=10;
$ga=6+6+10=22;
$we=4+2=6;
$ve=6+2=8;
$pla=4+2=6;
$pra=4+2;

解释:

$array_2'DK'存在3次和key values are = 0,2 and 4.因此,我必须添加具有key 0,2,4$array_1的值并将它们分配给$dk。在这里,$dk将被4+2+4=10.此过程对于所有其他变量都是相同的。 我该怎么做??

相反,单独的变量名称我建议你像这样制作数组

<?php
$array_1 = [4,6,2,6];
$array_2 = [ 0=> "DK", 1=>"GA", 2=>"DK", 3=>"GA"];
$newArray = [];
foreach($array_2 as $key=>$value){
if(isset($newArray[$value])){
$newArray[$value] +=$array_1[$key];
}else{
$newArray[$value] =$array_1[$key];
}
}
print_r($newArray);
?>

现场演示

输出:

Array
(
[DK] => 6
[GA] => 12
)

另一个建议:相反,复杂的编程尝试建立良好的关系或绑定,以免在记录中出现任何不一致

这将循环 array2 并用总和构建一个数组。
然后输出它(只是为了查看结果(,然后我使用提取来根据需要提取变量。
但我宁愿将它们保留在数组中

Foreach($array_2 as $key => $val){
If(!isset($new[$val])) $new[$val] =0;
$new[$val] += $array_1[$key];
}
Var_dump($new);
Extract($new);

https://3v4l.org/jOR7Z

最新更新