A VBScript equivalent of PHP’s array_uintersect
Function array_uintersect(mAry1,mAry2,data_compare_func)
Dim key,key_c
Dim found
Dim output : set output = Server.CreateObject("Scripting.Dictionary")
If isArray(mAry1) Then
For key = 0 to uBound(mAry1)
If isArray(mAry2) Then
For key_c = 0 to uBound(mAry2)
execute("found = " & data_compare_func & "(mAry1(key), mAry2(key_c))")
If found <> 0 Then
If output.Exists(key) Then
output(key) = mAry1(key)
Else
output.Add key, mAry1(key)
End If
End If
Next
ElseIf isObject(mAry2) Then
For Each key_c In mAry2
execute("found = " & data_compare_func & "(mAry1(key), mAry2(key_c))")
If found <> 0 Then
If output.Exists(key) Then
output(key) = mAry1(key)
Else
output.Add key, mAry1(key)
End If
End If
Next
End If
Next
ElseIf isObject(mAry1) Then
For Each key In mAry1
If isArray(mAry2) Then
For key_c = 0 to uBound(mAry2)
execute("found = " & data_compare_func & "(mAry1(key), mAry2(key_c))")
If found <> 0 Then
If output.Exists(key) Then
output(key) = mAry1(key)
Else
output.Add key, mAry1(key)
End If
End If
Next
ElseIf isObject(mAry2) Then
For Each key_c In mAry2
execute("found = " & data_compare_func & "(mAry1(key), mAry2(key_c))")
If found <> 0 Then
If output.Exists(key) Then
output(key) = mAry1(key)
Else
output.Add key, mAry1(key)
End If
End If
Next
End If
Next
End If
set array_uintersect = output
End Function
Please also note that php.vbs offers community built functions and goes by the McDonald’s Theory. We’ll put online functions that are far from perfect, in the hopes to spark better contributions. Do you have one? Then please just: