Und wo ist Deine konkrete Frage?
Ich würde -entweder schon beim erstellen der Arrays oder beim späteren durchlaufen- eine Liste erstellen (sehr performant, unheimlich leicht zu programmieren):
Zum Beispiel so:
Dim listKeys List as String
Dim listKeysDel List as String
Forall strVal in DeinArray
strKey = strleftback( strVal , "~" )
if iselement( listKeys( strKey ) ) then
'- Key schon vorhanden... am besten in ner Liste merken
listKeysDel( strVal ) = strrightback( strVal , "~" ) '- auf diese Weise hast Du schon die UNID direkt als Wert
else
listKeys( strKey ) = strVal
end if
End Forall
Forall strUnid in listKeysDel
'- mache was Du mit den Doks machen musst...
End Forall
HTH