Global $A,$B = ,$C = ,$D
For $i = 0 To 9
$A[$i] = $B[$i]
$A[$i] = $C[$i]
Next
_ArraySort($A)
Local $output=""
For $i=0 to UBound($A)-2
If $A[$i]=$A[$i+1] Then
If $A[$i]==$A[$i+1] Then
$output&=$A[$i]&"="&$A[$i+1]&@CRLF
Else
$output&=$A[$i]&"<>"&$A[$i+1]&@CRLF
EndIf
EndIf
Next
MsgBox(0,0,$output) 本帖最后由 netegg 于 2012-4-10 14:42 编辑
回复 16# 3mile
这恐怕不行,二维数组的第一维比较必须和第二维比较的结果同号,而且,结果要求的是第二维数组元素排序前的索引,而数组元素不是唯一值 回复netegg
这样做是不是如果两个数组长度不符,就不能遍历所有数据了?假设第一个数组短,第二 ...
nmgwddj 发表于 2012-4-10 00:50 http://www.autoitx.com/images/common/back.gif
这两个数组的维度是一样的。 本帖最后由 user3000 于 2012-4-10 22:14 编辑
回复 18# lion.lee
试试我这个, 是个双循环!应该好理解.
大数组估计处理起来慢!
(发现些错误, 已修正)#include <Array.au3>
Global $B =
Global $C =
Global $D = '|'
Global $count = 0
For $i = 0 To UBound($B) - 1
If Not StringInStr($D, '|' & $i & '|') Then
Local $A =
$count = 1
For $ii = $i + 1 To UBound($B) - 1
If $B[$i] = $B[$ii] Then
$count += 1
$A = '第 ' & $i + 1 & ' 个元素: ' & $C[$i]
$D &= $ii & '|' ; 外循环将跳过不再检查此元素的异同!
If $C[$i] <> $C[$ii] Then _ArrayAdd($A, '第 ' & $ii + 1 & ' 个元素: ' & $C[$ii])
EndIf
Next
If $count <> 1 Then _ArrayDisplay($A, '发现' & $count & '个异样元素')
EndIf
Next 回复lion.lee
试试我这个, 是个双循环!应该好理解.
大数组估计处理起来慢!
(发现些错误, 已修正)
user3000 发表于 2012-4-10 21:52 http://www.autoitx.com/images/common/back.gif
兄弟:太感谢了!完全达成了我的要求,牛人啊!Thanks! 回复 19# user3000
大侠:能否用_ArrayUnique($B)得到单独的每个数据,然后用_arrayfindall得到每一个数据的位置索引,再For一次得到每一个相同数据的位置号,最后用Ubound($C中刚才记录的位置号的集合),假如Ubound大于1,就表示有不同的值,则将这些值输出。我用这个思路研究了好几个小时,一直没成功。#include <Array.au3>
Global $A, $B =
Global $C =
Global $D, $e, $f, $g, $index
For $i = 0 To 9
$A[$i] = $B[$i] & " + " & $C[$i]
Next
$D = _ArrayUnique($B)
For $j = 1 To UBound($D) - 1
$index = _ArrayFindAll($B, $D[$j])
For $k = 0 To UBound($index) - 1
$e[$k] = $B[$index[$k]]
Next
Next
本帖最后由 user3000 于 2012-4-10 23:59 编辑
回复 21# lion.lee
只是想输出 数组B 里相同的元素吗?
勉强按你的思路来, 习惯于自己想一个
#include <Array.au3>
Global $B =
Global $C =
$D = _ArrayUnique($B)
For $j = 1 To UBound($D) - 1
$index = _ArrayFindAll($B, $D[$j])
If @error Then ContinueLoop
If UBound($index) > 1 Then
Local $elements = 'B数组元素值: ' & $B[$index] & ', 共 ' & UBound($index) & '个'
For $k = 0 To UBound($index) - 1
$elements &= @CRLF & '元素索引: ' & $index[$k]
Next
MsgBox(0, 'B数组中相同元素', $elements)
EndIf
Next
页:
1
[2]