asp数组的使用介绍

  定义简单数组

  有两种方法在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。

  更多应用:

  数组排序函数

  [code]

  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>