Find common values in multiple arrays with PHP
基本上可以满足我的需要,但在PHP中,我需要VB。
我的情况是,我正在尝试创建一个基于多个股票位置的智能选股系统。
在开票时,我们遍历开具发票的商品,并检查库存数据库中的可用库存。
如果发票上的所有项目都可以从库存地点1挑库,那么所有项目都应该从库存地点1挑库...等。
如果库存地点1中除一项或两项之外的所有物料都可用,则从库存地点1中挑选所有库存,但例外情况除外,应从可用库存最高的地点中挑选。
找到最高可用库存很简单,但我不知道如何从多个位置分析库存可用性并找到常见的库存位置。
我可以创建一组这样的数组
Item ID | Available Stock Locations
1 | 2, 3, 5
2 | 1, 2, 6
3 | 2, 3, 4
4 | 1, 2 ,3 如何比较这些位置列表,以发现2对所有四个位置列表都是通用的?
其次,如果一个商品没有共同的库存位置,我如何识别该商品,以便我可以返回并找到它的最高可用库存水平?
发布于 2011-12-24 00:24:19
与在PHP中一样,您可以使用相交数组来查找公共值。多亏了LINQ,这在VB中相当简单:
Dim array1 = {2, 3, 5}
Dim array2 = {1, 2, 6}
Dim array3 = {2, 3, 4}
Dim array4 = {1, 2, 3}
Dim commonItems = array1.Intersect(array2).Intersect(array3).Intersect(array4)commonItems现在是一个包含所有常见商店位置的IEnumerable(Of Integer)。
发布于 2011-12-24 00:41:40
Linq会更干净,但这种方法应该适用于2.0……
Dim arrX(2) As Integer
arrX(0) = 0
arrX(1) = 1
arrX(2) = 2
Dim arrY(2) As Integer
arrY(0) = 0
arrY(1) = 32
arrY(2) = 2
Dim arrZ(2) As Integer
arrZ(0) = 10
arrZ(1) = 2
arrZ(2) = 22
Dim arrCommon() As Integer
For Each i As Integer In arrX
For Each i2 As Integer In arrY
If i = i2 Then
For Each i3 As Integer In arrZ
If i2 = i3 Then
If arrCommon Is Nothing OrElse arrCommon.Length = 0 Then
ReDim arrCommon(0)
arrCommon(0) = i
Else
ReDim Preserve arrCommon(arrCommon.Length)
arrCommon(arrCommon.Length - 1) = i
End If
End If
Next
End If
Next
Nexthttps://stackoverflow.com/questions/8618265
复制相似问题