連想キーと要素との関係を維持しつつ配列をソートする
Function asort(ByRef arr, sort_flags)
asort = false
If Not IsObject(arr) Then Exit Function
Dim key,keys
Dim new_arr : set new_arr = Server.CreateObject("Scripting.Dictionary")
Dim found
Dim cnt
keys = array_values(arr)
sort keys,sort_flags
For Each key In keys
found = array_keys(arr,key,true)
If isArray(found) Then
For cnt = 0 to uBound(found)
If Not new_arr.Exists(found(cnt)) Then
new_arr.Add found(cnt), arr(found(cnt))
End If
Next
Else
new_arr.Add found, arr(found)
End If
Next
set arr = new_arr
asort = true
End Function
引数
ary = Array 入力の配列。
sort_flags = int オプションのパラメータ sort_flags によりソートの動作を修正可能です。詳細については、 sort() を参照ください。
戻り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
処理
・この関数は、 連想配列において各配列のキーと要素との関係を維持しつつ配列をソートします。
・この関数は、 主に実際の要素の並び方が重要である連想配列をソートするために使われます。