lion.lee 发表于 2012-4-9 23:07:21

【已解决】找出数组B中相同的值并记录位置,再比较数组C相应位置的值是否相同。

本帖最后由 lion.lee 于 2012-4-10 23:05 编辑

想用_arrayfindall,测试了好几次都搞不定,头真的好大。
刚开始用双重for循环,结果实现不了。
用_arrayfind,_arraysearch试了几回,也搞不定。
特来求助各位大大,谢谢了!
正则目前没有学习过,不知道能不能行,但建议不使用正则,若用正则的话,我怕自己消化不了。
主要想通过这次求助掌握一下这类问题的处理思路。
再次感谢各位前辈的热心指导,谢谢!#include <Array.au3>
Global $A,$B = ,$C = ,$D
For $i = 1 To 10
      $A[$i] = $B[$i] & $C[$i]
Next

#cs
        想实现当"数组B中的数值相同时比较数组C中对应的值是否相同,如不相同则将其列出来"
是比较同一个数组(B)中的值,从开头到结束的数据,如果数组中有一样的数据,就把该数据所在B的位置记录下来,再比较另外一个数组C对应位置的数据,如果该数组C中的值不一样则返回该位置的内容。也就是说如果B3 = B5 = B7 ,则比较C3,C5,C7的内容是否相同,若不相同则输出C3,C5,C7。
#ce正解在19楼!非常感谢!

nmgwddj 发表于 2012-4-9 23:13:11

我的确没看明白是什么意思。
你的意思是不是比较两个数组,从开头到结束的数据,如果两个数组相同位置的数据一样就记录下来并返回数据内容?

lion.lee 发表于 2012-4-9 23:18:26

本帖最后由 lion.lee 于 2012-4-9 23:22 编辑

回复 2# nmgwddj
是比较同一个数组中的值,从开头到结束的数据,如果数组中有一样的数据,就把该数据所在的位置记录下来,再比较另外一个数组对应位置的数据,如果该数组中的值不一样则返回数据内容。也就是说如果B1 = B3 ,则比较C1是否等于C3。

netegg 发表于 2012-4-9 23:25:16

本帖最后由 netegg 于 2012-4-9 23:34 编辑

#include <Array.au3>
Global $A,$B = ,$C = ,$aD, $temp=''
$aD = _arrayunique($B)
for $i in $aD
local $aIndex = _arrayfindall($B, $i)
if ubound($aIndex)=2 and $C[$aIndex] = $C[$aIndex] then $temp &= $C[$aIndex]&','
next
msgbox(0,0,$temp)

lion.lee 发表于 2012-4-9 23:35:02

感谢大大的点拨,我一会测试一下我本来的程序看是否能实现。再次感谢!

afan 发表于 2012-4-10 00:44:03

不知道最终要得到什么。或许可以用正则完成。

netegg 发表于 2012-4-10 00:48:22

本帖最后由 netegg 于 2012-4-10 00:51 编辑

回复 6# afan
可能不太好弄,
$b=$b, $c<>$c
要的是$c,$c的集合
我那个代码也有问题,只是个引子,具体的可能还要细整

nmgwddj 发表于 2012-4-10 00:50:34

回复 4# netegg


    这样做是不是如果两个数组长度不符,就不能遍历所有数据了?假设第一个数组短,第二个数组长。

netegg 发表于 2012-4-10 00:52:35

回复 8# nmgwddj
遍历没问题,不牵扯数组元素的个数,只牵扯用哪个数组作为比较的基础

afan 发表于 2012-4-10 00:53:19

回复 7# netegg


    嗯,我知道。我会先合并两个数组的字符串~
LZ 的用意不大清楚,就不搞了~今天累了,睡~

netegg 发表于 2012-4-10 00:54:06

本帖最后由 netegg 于 2012-4-10 00:57 编辑

回复 10# afan
合并肯定不行,a =1,a = 1, b =10, b =10数组的值是不等的,但相等关系是一样的
楼主比的是当a = a时 b 是否等于 b

afan 发表于 2012-4-10 00:56:37

回复 11# netegg


    可以的,我已经试过了~ 安鸟,蛋蛋~

netegg 发表于 2012-4-10 00:57:54

回复 12# afan

拆值?

afan 发表于 2012-4-10 00:59:52

回复 13# netegg


    1:90,2:270,3:180,...

netegg 发表于 2012-4-10 01:01:45

回复 14# afan
这倒是应该可以用正则处理了
页: [1] 2
查看完整版本: 【已解决】找出数组B中相同的值并记录位置,再比较数组C相应位置的值是否相同。