Arrayer har inga inbyggda sorteringsfunktioner, det har däremot ADO:n.
Så om man vill få en gratis datumsortering så kan man ju slänga över arrayerna i ett temporärt Recordset:
Function GetLastThreeIds(inpArray1(),inpArray2())
Set tmpRec = Server.CreateObject("ADODB.Recordset")
tmpRec.Fields.Append "Id", 3 'adInteger
tmpRec.Fields.Append "TimeStamp", 135 'adDBTimeStamp
tmpRec.Open
For i = LBound(inpArray1, 2) To UBound(inpArray1, 2)
tmpRec.AddNew
tmpRec("Id") = CInt(inpArray1(0, i))
tmpRec("TimeStamp") = CDate(inpArray1(1, i))
Next
For i = LBound(inpArray2, 2) To UBound(inpArray2, 2)
tmpRec.AddNew
tmpRec("Id") = CInt(inpArray2(0, i))
tmpRec("TimeStamp") = CDate(inpArray2(1, i))
Next
tmpRec.Sort = "TimeStamp DESC" 'Sortera på tid.
tmpRec.MoveFirst
Dim arrToReturn(2)
arrToReturn(0) = tmpRec("Id")
Do While arrToReturn(0) = tmpRec("Id") And Not tmpRec.EOF
tmpRec.MoveNext 'Ignorera dubbletter
Loop
If Not tmpRec.EOF Then arrToReturn(1) = tmpRec("Id")
Do While (arrToReturn(1) = tmpRec("Id") or arrToReturn(0) = tmpRec("Id")) And Not tmpRec.EOF
tmpRec.MoveNext 'Ignorera dubbletter
Loop
If Not tmpRec.EOF Then arrToReturn(2) = tmpRec("Id")
Set tmpRec = Nothing
GetLastThreeIds = arrToReturn
end Function
sortedArray= GetLastThreeIds(arrTextID,arrNewsID)
response.write "Resultat: " & sortedArray(0) & " " & sortedArray(1) & " " & sortedArray(2)
Kanske lite "overkill" i det här fallet men sorteringen funkar ju på godtyckligt stora arrayer.
