经典的ASP循环数组,带有数组名称

时间:2015-05-06 17:34:54

标签: arrays for-loop asp-classic

嘿,所有人都可以循环使用名称如下的几个数组:

arryMaster = Array("170","180","120","610")

arry170    = Array("170","2214","1121"...)
arry180    = Array("180","3890","0090"...)
arry120    = Array("120","0200","7321"...)
arry610    = Array("610","1890","0213"...)

做这样的事情:

For Each arryMasterLoop In arryMaster
    For Each arryNumber In arryMasterLoop
        if (strDeptID = arryNumber) then strGroupNum = arryNumber(0)
    Next
Next

我目前在上面的代码中遇到的问题是每个阵列都被命名为 arryXXX ,目前它只通过 arrayMasterLoop 循环,只有数字而不是<然后是数字(例如:arry170)。

strDeptID 包含上述示例中的 2214,2212,3890,0090等之一。

如何执行此循环并让它知道查看 arry XXX变量?

2 个答案:

答案 0 :(得分:1)

eval功能是您正在寻找的功能。这是你的代码被调整以允许动态循环遍历数组。

for each arryMasterLoop in arryMaster
    for each arryNumber in eval("arry" & arryMasterLoop)
        ' your code here
    next
next

答案 1 :(得分:0)

对于这个特定问题,我可能会考虑使用数组。数组名称是否始终采用以下格式:arryXXX?有些数组名称有一个像array011这样的前导零吗?您使用了多少总数组以及它们最初是如何创建的?在您完成解决方案时,只需要考虑几件事情。

现在,您需要创建一个Array来保存所有数组,并将相应的Array插入XXX位置。很容易,对吧?

Dim maxvalue = 9999 'this is your largest array value
Dim lookupArray = Array(maxvalue);

lookupArray(170) = arry170
lookupArray(180) = arry180
lookupArray(2450) = arry2450
lookupArray(1750) = arry1750

创建查找数组后,您可以轻松遍历arryMaster,将值解析为您将在lookupArray中检索相应数组的索引。很简单,对吧?

希望有所帮助!