明凯博客

关注网站技术,一个特立独行的程序员

Asp中数组的使用方法详解

定义简单数组

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

方法一:

1
MyArray = Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct", "Nov","Dec")

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

方法二:

1
2
3
Dim myArray(2) '指定数组大小
myArray(0)="Jan" 
myArray(1)="Feb"

数组动态扩展

1
2
3
DIM myArray()
REDIM myArray(20) '将数组大小重新定义为20
ReDim Preserve MyArray(i)   'Preserve   保留数组中的原有数据

二维数组

举例:

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

二维赋值举例:

1
MYArray(3,3)=100

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

1
2
3
4
dim MyArray(5)
MyArray(0)=Array(...) '一维数组
MyArray(1)=Array(...)'一维数组
...

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

数组的下标

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

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

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

有用的数组函数

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

更多应用:

数组排序函数:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

数组排序函数应用例子

1
2
3
4
5
6
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

将一个字符串分割并返回数组

1
2
3
4
5
Dim MyArray
MyArray = Split(字符串,分割符)
For I = Lbound(MyArray) to Ubound(MyArray) 
Response.Write MyArray(I) & "<br />"
Next

在Application和Session中使用数组

1
2
3
4
Application.Lock
Application("StoredArray") = MyArray
Application.Unlock
LocalArray = Application("StoredArray")

覆盖Application中的数组

1
2
3
Application.Lock
Application("StoredArray") = LocalArray
Application.Unlock

Session使用方法与Application相同

从数据库中把数据导入数组中

1
2
3
4
5
6
7
8
9
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

, , , ,

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注