电话
400 9058 355
本文详解如何在 php 中对两个多维数组(分别代表“down”和“up”操作)基于 `id` 与 `loc` 双条件匹配,执行 `qt` 字段的减法运算,并保留未匹配项,最终生成统一 `type => 'total'` 的结果数组。
在实际业务场景中(如库存管理、订单扣减、资源配额统计),常需对两组结构相似但语义不同的数据(例如“已分配量”与“已回收量”)进行精细化差值计算——仅当 id 和 loc 完全一致时才执行 qt 相减,其余条目保持原 
以下是一个健壮、可读性强且兼顾性能的实现方案:
$item['id'],
'loc' => $item['loc'],
'type' => 'total',
'qt' => $qt,
];
}
return $result;
}
// 示例数据(按题设构造)
$down = [
['id' => 26, 'loc' => 1, 'type' => 'down', 'qt' => 12],
['id' => 32, 'loc' => 1, 'type' => 'down', 'qt' => 34],
['id' => 26, 'loc' => 2, 'type' => 'down', 'qt' => 5],
['id' => 86, 'loc' => 3, 'type' => 'down', 'qt' => 45],
['id' => 23, 'loc' => 9, 'type' => 'down', 'qt' => 3],
['id' => 23, 'loc' => 3, 'type' => 'down', 'qt' => 99],
];
$up = [
['id' => 26, 'loc' => 1, 'type' => 'up', 'qt' => 5],
['id' => 86, 'loc' => 3, 'type' => 'up', 'qt' => 27],
['id' => 23, 'loc' => 9, 'type' => 'up', 'qt' => 3],
];
$result = subtractByDualKey($down, $up);
print_r($result);
?>该方案时间复杂度为 O(n + m)(n、m 分别为 $down 和 $up 长度),显著优于原始答案中每次遍历 $up 的 O(n×m) 嵌套循环,适合中大型数据集。
邮箱:8955556@qq.com
Q Q:8955556
本文详解如何将Go官方present工具(用于生成HTML5...
PySNMP在不同版本中对SNMP错误状态(errorSta...
time.Sleep仅阻塞当前goroutine,其他gor...
PHPfopen()创建含特殊符号的文件名失败主因是操作系统...
WooCommerce中通过代码为分组产品动态聚合子商品的属...
io.ReadFull返回io.ErrUnexpectedE...
本文详解Yii2中控制器向视图传递ActiveRecord数...
本文详解为何通过wp_set_object_terms()为...
Pytest中使用@mock.patch类装饰器会导致补丁泄...
带缓冲的channel是并发安全的FIFO队列;make(c...