按相同数组值计算多维数组值

时间:2018-08-09 12:28:16

标签: php arrays multidimensional-array count

让我们假设这种情况。我们有这样的多维产品系列。 2种产品,但是3种属性,每一种都有不同的cart_quantity。

Array
(
    [0] => Array
        (
            [id_product] => 1
            [id_product_attribute] => 5
            [cart_quantity] => 1
        )
    [1] => Array
        (
            [id_product] => 620
            [id_product_attribute] => 784
            [cart_quantity] => 8
        )
    [2] => Array
        (
            [id_product] => 1
            [id_product_attribute] => 12
            [cart_quantity] => 3
        )
)

我如何对具有相同id_product的每个数组项的所有$ product ['cart_quantity']求和,结果如下:

Array
(
     [1] => 4 // 1 + 3
     [620] => 8
)

对于线程标题,我真的很抱歉,如果没有在上面的示例中显示此内容,我什至无法形成我想要实现的目标。

2 个答案:

答案 0 :(得分:1)

使用简单的foreach循环。将$product['product_id']用作结果数组中的键,当您获得重复的ID时,只需将其添加即可。

$result = array();
foreach ($products as $product) {
    $id = $product['product_id'];
    $quant = $product['cart_quantity'];
    if (isset($result[$id])) {
        $result[$id] += $quant;
    } else {
        $result[$id] = $quant;
}

答案 1 :(得分:1)

请尝试使用以下方式。

$totals = array();
foreach ($main as $row) {
  $product = $row['id_product'];
  $quantity = $row['cart_quantity'];
  $totals[$product] += $quantity;
}