通过单个数组中的键组合值

时间:2018-09-01 13:42:31

标签: php arrays sum

没有什么能真正实现我想要实现的目标。我有以下数组:

Array(

[0] => Array
    (
        [chicken] => 7
    )

[1] => Array
    (
        [cheese] => 9
    )

[2] => Array
    (
        [marinade] => 3
    )

[3] => Array
    (
        [cookbook] => 7
    )

[4] => Array
    (
        [chicken] => 11
    )

[5] => Array
    (
        [cheese] => 6
    )

[6] => Array
    (
        [marinade] => 12
    )

)

我想通过它们的键求和所有值。如果键在数组中是多次,例如chicken,我想对这些值求和。

array
(
[chicken] => 18,
[cheese] => 16
... etc

)

2 个答案:

答案 0 :(得分:1)

因此,您首先需要循环遍历第一个数组以获得第二级数组。然后,您可以从每个数组中获取当前键和值,将与该键关联的新数组中的值相加。

// where the sums will live
$sum = [];

foreach($array as $item) {
    $key = key($item);
    $value = current($item);
    if (!array_key_exists($key, $sum)) {
        // define the initial sum of $key as 0
        $sum[$key] = 0; 
    }
    // add value to the sum of $key
    $sum[$key] += $value;
}

答案 1 :(得分:0)

这里有个简单的例子,希望对您有所帮助。

$result = array();
foreach($data as $key => $value) 
{   
     $valueKey = key($value);
     $result[$valueKey] += $value[$valueKey];
}