asp数组的使用

本文详细介绍ASP中数组的创建、操作及应用技巧,包括一维、二维数组定义与使用,数组排序函数实现,以及如何在Application和Session中使用数组。

判断数组

IsArray(abc)


定义简单数组

有两种方法在asp中定义和初始化数组,让我们看看每种的例子:

方法一:
MyArray = Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct", "Nov","Dec")

数组大小由初始化元素个数决定。

方法二:
Dim myArray(2) '指定数组大小
myArray(0)="Jan"
myArray(1)="Feb"

数组动态扩展

DIM myArray()
REDIM myArray(20) '将数组大小重新定义为20

ReDim Preserve MyArray(i)   ‘Preserve   保留数组中的原有数据

二维数组

举例:

dim MyArray(5,10) '定义了一个二维数组

二维赋值举例:

MYArray(3,3)=100

二维数组还有一种变相的实现方法:

dim MyArray(5)

MyArray(0)=Array(...) '一维数组

MyArray(1)=Array(...)'一维数组

...

访问的时候,用MyArray(x)(y)这样的格式

 

数组的下标

用上面的方法定义数组,每一维数组的第一个元素的下标是0,最后一个元素的下标就是元素数量-1

但也可以指定数组的下标,如:

dim MyArray1(3 to 10)  '下标从3到10,MyArray(3)即获取第一个元素的值

 

有用的数组函数

Ubound(数组名)函数--返回数组的最后一个元素的下标。

Lbound(数组名)函数--返回数组的第一个元素的下标,缺省为0。

 

更多应用:

数组排序函数
function Sort(ary)
KeepChecking = TRUE
Do Until KeepChecking = FALSE
KeepChecking = FALSE
For I = 0 to UBound(ary)
If I = UBound(ary) Then Exit For
If ary(I) > ary(I+1) Then
FirstValue = ary(I)
SecondValue = ary(I+1)
ary(I) = SecondValue
ary(I+1) = FirstValue
KeepChecking = TRUE
End If
Next
Loop
Sort = ary
End function

数组排序函数应用例子
Dim MyArray
MyArray = Array(1,5,123,12,98)
MyArray = Sort(MyArray)
For I = Lbound(MyArray) to Ubound(MyArray)
Response.Write MyArray(I) & "<br>"
Next

 

将一个字符串分割并返回数组
Dim MyArray
MyArray = Split(字符串,分割符)
For I = Lbound(MyArray) to Ubound(MyArray)
Response.Write MyArray(I) & "<br>"
Next

 

在Application和Session中使用数组
Application.Lock
Application("StoredArray") = MyArray
Application.Unlock

LocalArray = Application("StoredArray")

覆盖Application中的数组
Application.Lock
Application("StoredArray") = LocalArray
Application.Unlock

Session使用方法与Application相同

 

从数据库中把数据导入数组中
Dim MyArray
取出全部记录
MyArray = RS.GetRows
取出前10项记录
MyArray = RS.GetRows(10)

For row = 0 To UBound(MyArray, 2)
For col = 0 To UBound(MyArray, 1)
Response.Write (col, row) & "<br>"
Next
Next

 

向另一个页面传递数组

现在有很多种方法向另一页面传递数组,目前有三种方法:

定义一个又逗号分隔的字符串,然后再下一页中用Split函数重新建立数组。
将数组存储在一个Session变量中,然后在下一个页面中调用。
通过表单的隐含区域来传递数组,他们都是自动用逗号分开,然后再用Split函数重新建立数组。

前两种方法很好,但是都比第三中复杂。在这里我们将只介绍第三种,因为它是最简单最有效的。

1.asp:
<%
dim I
dim myArray(20)

for I=0 to 20
myArray(I)="Item " & I
next
%>
<html>
<body>
<form name="testform" method="post" action="2.asp">
<%
for I=0 to ubound(myArray)
response.write "<input type=hidden name=myArray value='" & myArray(I) & "'>"
next
%>
<p>
<input type="submit">
</form>
</body>
</html>

以上我们做的是在一个表单中用单独的隐含域存储数组中的每个元素,我们再看看下一页:

2.asp
<html>
<body>
<%
dim arrString
dim myArray
dim I

arrString=request("myArray")
myArray = split(arrString,",")

for I=0 to ubound(myArray)
response.write "Item "&I&" = " & myArray(I) & "<br>" & vbCrLf
next
%>
</body>
</html>

<think>我们正在讨论ASP数组的定义、使用及操作方法。根据用户提供的引用和问题,我们需要整理关于ASP数组的信息。 引用[1]提到了三种传递数组的方法:使用逗号分隔的字符串然后Split、存储在Session变量中、通过表单隐含区域传递。 引用[2]展示了如何使用ReDim Preserve来动态扩展数组并保留原有数据。 引用[3]进一步展示了数组的声明、赋值、重新调整大小并保留值。 由于用户要求的是ASP数组的定义、使用及操作方法,我们可以组织如下: 1. 数组的定义(声明) 2. 数组的初始化与赋值 3. 数组的操作(包括调整大小、遍历等) 4. 数组的传递(跨页面) 注意:ASP使用VBScript,所以数组相关语法遵循VBScript。 下面开始组织回答: </think> ### ASP数组的定义、使用及操作方法 #### 1. **数组定义** 在ASP(VBScript)中,数组通过 `Dim` 声明: ```asp <% Dim arrStatic(3) ' 静态数组:固定大小为4(索引0到3) Dim arrDynamic() ' 动态数组:大小可后期调整 %``` #### 2. **初始化与赋值** - **静态数组**:声明时指定大小并直接赋值 ```asp <% Dim colors(2) colors(0) = "Red" colors(1) = "Green" colors(2) = "Blue" %>``` - **动态数组**:用 `ReDim` 动态调整大小 ```asp <% Dim nums() ReDim nums(5) ' 初始大小6个元素 For i=0 To 5 nums(i) = i*2 Next %>``` #### 3. **核心操作技巧** - **动态扩容保留数据**:`ReDim Preserve` 扩展数组且保留原值[^2][^3] ```asp <% ReDim Preserve nums(10) ' 扩展到11元素,原数据不变 nums(6) = 12 %>``` - **获取数组信息**: ```asp UBound(nums) ' 返回数组上限(如10) LBound(nums) ' 返回数组下限(始终为0) `````` #### 4. **数组传递技巧** - **跨页面传递**: - **方法1**:Session存储 ```asp ' 页面A Session("MyArray") = arrData ' 页面B Dim arrReceived arrReceived = Session("MyArray") `````` - **方法2**:Split拆分字符串重建数组[^1] ```asp ' 页面A:数组转字符串 strData = Join(arrData, ",") ' 页面B:字符串转数组 arrReceived = Split(strData, ",") `````` - **方法3**:表单隐藏域传递(自动逗号分隔) ```asp ' 表单中 <input type="hidden" name="arr" value="<%= Join(arrData,",") %>"> `````` #### 5. **注意事项** - **索引规则**:数组索引从0开始,`UBound` 返回最大索引(非元素总数)。 - **类型限制**:VBScript数组元素可为混合类型(字符串、数字等)。 - **性能优化**:避免频繁 `ReDim Preserve`,每次调整会复制整个数组
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值