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

时间:2018-05-16 11:13:29

标签: php arrays foreach

我有两个这样的数组:

$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.     因此,我必须添加$array_1 key 0,2,4的值并将其分配给$dk。在此,$dk将为4+2+4=10。对于所有其他变量,此过程将是相同的。         我怎样才能做到这一点??

2 个答案:

答案 0 :(得分:1)

而是单独的变量名称我建议你像这样制作数组

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

Live Demo

输出:

spring.jpa.properties.hibernate.physical_naming_strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
spring.jpa.properties.hibernate.implicit_naming_strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyJpaCompliantImpl

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

答案 1 :(得分:1)

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

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