首页 > 解决方案 > 按相同的数组值计算多维数组值

问题描述

让我们假设这种情况。我们有像这样的多维 $products 数组。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
)

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

标签: phparraysmultidimensional-arraycount

解决方案


使用一个简单的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;
}

推荐阅读