基于键更新的php多维数组[关闭]
Posted
技术标签:
【中文标题】基于键更新的php多维数组[关闭]【英文标题】:php multidimensional arrays updating based on keys [closed] 【发布时间】:2015-01-14 18:29:48 【问题描述】:我有两个数组 inventoryStock 和 posStock(销售点库存),它们都使用产品 sku 编号作为键,值是我需要以某种方式使用 $inventoryStock 中的值更新 posStock 的数量,其中有键匹配。
数组示例:
inventoryStock
abs-0098 => 5,
abs-0099 => 23,
abs-0100 => 8,
abs-0101 => 19
posStock
abs-0098 => 5,
abs-0099 => 23,
abs-0101 => 15
我需要 posStock 与 inventoryStock 相同我不能只将 posStock 设为库存库存,因为库存库存中包含未在销售点列出的额外产品。
【问题讨论】:
请分享您的尝试。 IMO 对于您想要的结果不是很清楚。也许你可以发布一个你想要的 combineStock 的数组。 我同意结果数组会有所帮助,但我不同意那些投票以 'Too Broad' 结束此问题的人。 【参考方案1】:您可以使用array union。
+ 运算符返回附加到左侧数组的右侧数组;对于两个数组中都存在的键,将使用左侧数组中的元素,而忽略右侧数组中的匹配元素。
在您的情况下(如果我正确理解规范):
$newPOSStock = $inventoryStock + $posStock;
【讨论】:
为了完整起见,这与 array_merge 完全相反,其中左侧数组中的键被右侧数组中的键覆盖。有时您希望将值保留在左侧并使用+
,有时您希望将值保留在右侧并使用array_merge。
确实如此。谢谢@Jonathan Kuhn。【参考方案2】:
您正在寻找 php 的 array_key_exists() 函数。
foreach ($inventoryStock as $key => $value)
if (array_key_exists($key, $posStock))
$posStock[$key] = $value;
continue; // Continue Loop
// Do something if the array key doesn't exist.
详细说明我为什么要这样做。我现在有一个逻辑块,可以让我在数组键不存在时做一些事情,比如将它添加到 PosStock,或者如果我想要或更改其他变量的值以触发其他行为。
【讨论】:
谢谢,这正是我所需要的。以上是关于基于键更新的php多维数组[关闭]的主要内容,如果未能解决你的问题,请参考以下文章