PHP在多维数组中的Sum键与另一个键匹配

时间:2014-02-21 02:25:29

标签: php arrays multidimensional-array sum

我有一个多维数组,我需要添加一些数据。

我的数组看起来像这样(我为这个例子裁剪了更多的数据):

Array
(
    [0] => Array
        (
            [date] => 20-02-2014
            [tool] => mystuff1
            [usage] => 447
            [minutes] => 6705
        )

    [1] => Array
        (
            [date] => 20-02-2014
            [tool] => mystuff2
            [usage] => 20
            [minutes] => 1200
        )

将有多个具有tool = mystuff1的子数组,我想为所有拥有mystuff1的子项添加“分钟”键。最终我想对mystuff2加起来做同样的事情(还有其他'工具'键,除了那些也将完成。)

我已经尝试了几个我在这个网站上找到的例子,但它们看起来总是基于1个关键名称,即'分钟',但我找不到任何可以在“工具”匹配的情况下总结“分钟”的内容。

1 个答案:

答案 0 :(得分:1)

您可以遍历数组并将分钟值添加到输出数组的数组键

$output = array();

foreach($your_array as $current) {
    // create the array key if it doesn't exist already
    if(!array_key_exists($current['tool'], $output))
        $output[$current['tool']] = 0;

    // add minutes to the current tool total
    $output[$current['tool']] += $current['minutes'];
}

这样你就可以得到这样的结果:

Array
(
    [mystuff1] => 6705
    [mystuff2] => 1200
)