php - 按相同的数组值计算多维数组值
问题描述
让我们假设这种情况。我们有像这样的多维 $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
)
我真的很抱歉线程标题如果没有在上面的示例中显示,我什至无法形成我想要实现的目标。
解决方案
使用一个简单的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;
}
推荐阅读
- flutter - 如何在按钮颤振中给出条件
- google-sheets - 是否可以根据另一列中的对列表进行字符串替换?(用多个前后值对替换一个范围)
- python - 如何使用 Tensorflow 修复此错误?
- python - Dict 中的序列元素无法正确加载
- bash - 如何在使用'ls'命令以及将输出分配给变量时抑制stderr?
- flutter - Flutter googele LineChart with String domainFn
- batch-file - 从python执行批处理文件时,输出只是第一行
- javascript - 使用带有无线电变化的开关盒
- verilog - 有延迟的非阻塞语句
- css - 如何正确使用 css 过渡?