关于比对删除数组元素(已解决)
本帖最后由 凌九霄 于 2012-4-21 03:37 编辑一个一维数组a,一个一维数组b,要求是删除b中不包含在a中的元素。要如何做?别告诉我b=a,我这个是简化了的,其实b是二维数组
Local $b =
Local $a =
我要的结果是:b数组元素跟a数组保持一致
个人想直接在循环比对中删除,不另外建立临时数组 .......没看懂
#include <array.au3>
Local $b =
Local $a =
Local $i
Local $j
For $i = UBound($b)-1 To 0 Step -1
For $j = 0 To UBound($a)-1
If $b[$i] = $a[$j] Then ExitLoop;;;
Next
If $j > UBound($a)-1 Then _ArrayDelete($b, $i);;;
Next
_ArrayDisplay($b, "数组b")
_ArrayDelete() 最高支持二维,对二维数组是 删除行
如果需要 删除多维数组 的某个元素 ,选要先 转为一维数组 http://www.autoitx.com/thread-28506-1-1.html
veket_linux 发表于 2012-4-21 00:41 http://www.autoitx.com/images/common/back.gif
非常感谢,受教了 本帖最后由 凌九霄 于 2012-4-21 03:42 编辑
受一位叫木头(QQ:104952128)朋友的启发,自行写了一个方法。但是没有veket_linux的来得简洁。#include <array.au3>
Local $b =
Local $a =
Local $i
Local $j
Local $value
For $i = 0 To UBound($a) - 1
$value = $a[$i]
If IsDeclared($value) = 0 Then
Assign($value,1)
EndIf
Next
For $j = UBound($b) - 1 To0 Step -1
$value = $b[$j]
If IsDeclared($value) = 0 Then
_ArrayDelete($b,$j)
EndIf
Next
_ArrayDisplay($b, "数组b")再次感谢 veket_linux 和 木头 的帮助
页:
[1]