VBScript sort 関数

配列をソートする



Const SORT_REGULAR = 0
Const SORT_NUMERIC = 1
Const SORT_STRING  = 2

Function sort(ByRef arr, sort_flags)

    sort = false
    If Not IsArray(arr) Then  Exit Function

    Dim i,j
    Dim temp

    For i = 1 to (uBound(arr))

        [=] temp, arr(i)

        j = i -1
        Do While sort_helper(temp,arr(j),sort_flags)

            [=] arr(j+1) , arr(j)
            j = j -1
            If j < 0 Then Exit Do
        Loop

        [=] arr(j + 1), temp
    Next

    sort = true

End Function

Function sort_helper(temp , arr, sort_flags)

    sort_helper = false
    If isArray(temp) or isObject(temp) Then Exit Function

    sort_helper = true
    If isArray(arr) or isObject(arr) Then Exit Function

    If varType(sort_flags) <> 2 Then sort_flags = 0

    If sort_flags = SORT_REGULAR Then
        sort_helper = (temp < arr)
    ElseIf sort_flags = SORT_NUMERIC Then
        sort_helper = (intval(temp) < intval(arr))
    ElseIf sort_flags = SORT_STRING Then
        sort_helper = (Cstr(temp) < Cstr(arr))
    End If

End Function



引数

ary = Array ソートする配列
sort_flags = int ソートの動作を修正するために使用することが可能です。

戻り値

成功した場合に TRUE を、失敗した場合に FALSE を返します。

処理

・配列をソートします。
 ・この関数が正常に終了すると、 各要素は低位から高位へ並べ替えられます。
 ・http://www.thinkit.co.jp/article/62/3/

その他の PHP array 関数