asort( ) 函数

示例 请参阅

按升序或降序对数组中的元素排序。

语法

ASORT(ArrayName [, nStartElement [, nNumberSorted [, nSortOrder]]])

参数

ArrayName

指定要排序的数组名称。

nStartElement

指定从第几个元素开始排序。如果忽略参数 nStartElement,则默认从数组的第一个元素开始排序。如果数组是一维的,函数从 nStartElement 
开始排序。如果数组是二维的,则参数 nStartElement 既决定从第几行开始排序,又决定以每行中的第几列元素为排序依据。

附注
引用二维数组中的一个元素有两种方法。第一种为使用两个下标值指定元素在数组中行和列位置,另一种方法为使用元素编号。此函数和其他处理二维数组的函数都需要使用元素编号(asort( ) 函数中为数值表达式 nStartElement 
和 nNumberSorted)。使用 AELEMENT( ) 函数可以将数组的行、列下标值转换成元素的编号值。

下面的示例说明了起始元素 nStartElement 决定二维数组中的行如何排序。创建一个小的数组 gaArray 并且进行两次排序。第一次排序从数组的第一个元素开始,并且行依据数组的第一列数值进行排序。第二次排序从数组 gaArray 
的第四个元素开始,行依据数组的第二列数值进行排序。
第一次排序从第一行开始,第二次排序从第二行开始。可以使用 DISPLAY MEMORY 命令显示数组内容,下面的示例表中显示了排序结果。
下面命令创建数组 gaArray:

DIMENSION gaArray(3,2)
gaArray(1) = 'G'
gaArray(2) = 'A'
gaArray(3) = 'C'
gaArray(4) = 'Z'
gaArray(5) = 'B'
gaArray(6) = 'N'


数组 gaArray 值如下:

1 列 2 列
第 1 行 G A
第 2 行 C Z
第 3 行 B N

用 asort( ) 函数从第一个元素 (1, 1) 开始对数组进行排序。排序时,通过调整行与行之间的位置使数组的第一列元素按升序放置。

=ASORT(gaArray,1)


新的行序为:

第 1 列 第 2 列
第 1 行 B N
第 2 行 C Z
第 3 行 G A

然后从第四个元素 (2, 2) 开始对数组进行排序。排序时,通过调整行与行之间的位置使数组第二列元素按顺序放置。

=ASORT(gaArray,4)


注意行序的不同:

  第 1 列 第 2 列
第 1 行 B N
第 2 行 G A
第 3 行 C Z

nNumberSorted

指定一维数组中参与排序的元素个数,或二维数组中参与排序的行数。例如,如果数组是一维的,并且参数 nStartElement 为 2,这表明从数组的第二个元素开始排序。参数 nNumberSorted
为 3,表明有三个元素参与排序,即对第二、第三和第四个元素排序。如果参数为 -1 或忽略此参数,则从起始元素 nStartelement 到数组中的最后一个元素都参与排序。
如果数组是二维的,nNumberSorted 指定从起始元素 nStartElement 所在行开始参与排序的行数。例如,如若参数 nStarElement 为 2 且参数 nNumberSorted 为 3,将对包含第二个数组元素的行和接下来的两行排序。如果 nNumbersorted 
为 -1 或忽略此参数,从包含起始元素的行到数组的最后一行都参与排序。

nSortOrder

指定数组元素的排序方向(升序或降序)。默认情况下,数组元素按升序排序;如果 nSortOrder 值为零或忽略此参数,数组中元素将按升序排序。如果 nSortOrder 值为 1 或任意非零值,数组元素按降序排序。

返回值类型
数值型


说明
所有参与排序的元素必须为同一数据类型。一维数组对元素排序,二维数组对行排序。对二维数组排序时,将改变数组行的顺序,使数组中某一列的元素按升序或降序排列。
如果排序成功,返回值为 1,否则返回值为 -1。