询问一个两个数组比较的问题,最终得到比较后删除后余下的数组
本帖最后由 sex123 于 2015-3-13 21:19 编辑假设有两个数组
$cnLinkoutAll 和 $black
分别存有不同的内容文字,例如
$cnLinkoutAll 存有以下文字
EBSCO
Bentham Science Publishers Ltd.
Molecular Vision
Example B
而$black数组存有以下文字
Gale Databases
EBSCO
ProQuest
Bentham Science Publishers Ltd.
Ingenta plc
也就是说$black是黑名单数组。$cnLinkoutAll 是待筛选数组。
问题来了》请问,怎么把$cnLinkoutAll 中存有的黑名单删除,即删除$cnLinkoutAll 当中的
EBSCO
Bentham Science Publishers Ltd.
而最后保留黑名单数组中没有的文字,即保留Molecular Vision和Example B。 这个我用倒序删除的方法搞定了,因为第一个数组里面是一对一对出现的,第一位是链接,第二位是文字,第三位是链接,第四位是对应的文字,挺麻烦的,最后只能倒着删除,还用step 2了,不过最后搞定了,谢谢楼上的几位了。 本帖最后由 netegg 于 2015-3-14 03:35 编辑
#include<array.au3>
Dim $cnLinkoutAll =
Dim $black=
$num = UBound($black)
_ArrayConcatenate($black, $cnLinkoutAll)
$black = _arrayunique($black)
_ArrayDelete($black, 0)
_ArrayReverse($black)
ReDim $black
_ArrayReverse($black)
_arraydisplay($black)
#Include <Array.au3>
Dim $cnLinkoutAll =
Dim $black=
Dim $n = 0
_ArrayDisplay($cnLinkoutAll,'删除之前')
For $i = 0 To 9
For $j = 0 To 3
If $cnLinkoutAll[$i-$n] = $black[$j] Then
_ArrayDelete($cnLinkoutAll,$i-$n)
$n += 1
ExitLoop
EndIf
Next
Next
_ArrayDisplay($cnLinkoutAll,'删除之后') #include<array.au3>
Dim $cnLinkoutAll =
Dim $black=
$num = UBound($black)
_ArrayConcatenate($black, $cnLinkoutAll)
$black = _arrayunique($black)
For $i = $num To 0 Step -1
_arraydelete($black, $i)
Next
_arraydisplay($black)
{:face (197):}
页:
[1]