Php 按周数对数组值求和

Php 按周数对数组值求和,php,Php,你能按周数对以下销售数据进行求和吗 Array ( [0] => Array ( [DATE] => 2015-03-06 [store] => 18 [weeknum] => 11 [sales] => 10 ) [1] => Array ( [DATE] => 2015-03-08 [store] => 18

你能按周数对以下销售数据进行求和吗

Array
(
    [0] => Array
    (
        [DATE] => 2015-03-06
        [store] => 18
        [weeknum] => 11
        [sales] => 10
    )
  [1] => Array
    (
        [DATE] => 2015-03-08
        [store] => 18
        [weeknum] => 11
        [sales] => 5
    )
  [2] => Array
    (
        [DATE] => 2015-03-09
        [store] => 18
        [weeknum] => 11
        [sales] => 5
    )
我想实现这样的目标

 [0] => Array
    (

        [store] => 18
        [weeknum] => 11
        [sales] => 20
    )

到目前为止,我已经尝试了数组求和,但似乎不起作用

只需遍历数组并将字段值添加到求和容器中即可

我还添加了门店号作为唯一标识符,以防有多家门店需要个人信息。如果您希望所有商店都使用它,只需更改
$key=$weekNumber即可$物品[‘商店’]输出,带
$key=$weekNumber

数据

$items = [
    [
        'DATE' => '2015-03-06',
        'store' => 18,
        'weeknum' => 11,
        'sales' => 10,
    ],
    [
        'DATE' => '2015-03-08',
        'store' => 18,
        'weeknum' => 11,
        'sales' => 5,
    ],
    [
        'DATE' => '2015-03-09',
        'store' => 18,
        'weeknum' => 11,
        'sales' => 5,
    ],
    [
        'DATE' => '2015-03-09',
        'store' => 18,
        'weeknum' => 12,
        'sales' => 5,
    ],
];
<?php

$storeWeekSums = [];

foreach ($items as $item) {
    // Save the key to refer to it later
    $weekNumber = $item['weeknum'];

    $key = $weekNumber . $item['store'];

    if (!isset($weekSums[$weekNumber])) {
        // The week and store does not already exist, let's create it with a value
        $storeWeekSums[$key] = [
            'store' => $item['store'],
            'weeknum' => $item['weeknum'],
            'sales' => $item['sales'],
        ];
    } else {
        // The week and store already exists, so we'll add to the current value instead
        $storeWeekSums[$key]['sales'] += $item['sales'];
    }
}

print_r($storeWeekSums);
Array
(
    [1118] => Array
        (
            [store] => 18
            [weeknum] => 11
            [sales] => 5
        )

    [1218] => Array
        (
            [store] => 18
            [weeknum] => 12
            [sales] => 5
        )

)
代码

$items = [
    [
        'DATE' => '2015-03-06',
        'store' => 18,
        'weeknum' => 11,
        'sales' => 10,
    ],
    [
        'DATE' => '2015-03-08',
        'store' => 18,
        'weeknum' => 11,
        'sales' => 5,
    ],
    [
        'DATE' => '2015-03-09',
        'store' => 18,
        'weeknum' => 11,
        'sales' => 5,
    ],
    [
        'DATE' => '2015-03-09',
        'store' => 18,
        'weeknum' => 12,
        'sales' => 5,
    ],
];
<?php

$storeWeekSums = [];

foreach ($items as $item) {
    // Save the key to refer to it later
    $weekNumber = $item['weeknum'];

    $key = $weekNumber . $item['store'];

    if (!isset($weekSums[$weekNumber])) {
        // The week and store does not already exist, let's create it with a value
        $storeWeekSums[$key] = [
            'store' => $item['store'],
            'weeknum' => $item['weeknum'],
            'sales' => $item['sales'],
        ];
    } else {
        // The week and store already exists, so we'll add to the current value instead
        $storeWeekSums[$key]['sales'] += $item['sales'];
    }
}

print_r($storeWeekSums);
Array
(
    [1118] => Array
        (
            [store] => 18
            [weeknum] => 11
            [sales] => 5
        )

    [1218] => Array
        (
            [store] => 18
            [weeknum] => 12
            [sales] => 5
        )

)

有许多不同的方法和答案()。 例如:

使用:

或使用: