---
title: "Jämföra 2 arrayer"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/69707-jämföra-2-arrayer"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Peeer"
published: "2003-02-28T20:03:50.000Z"
updated: "2003-03-01T14:06:17.000Z"
replies: 2
views: 271
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/69707-jämföra-2-arrayer"
---

# Jämföra 2 arrayer

## #1 — Peeer, 2003-02-28T20:03Z

Hilfe!
Jag har två arrayer (arrTextID & arrNewsID) som båda innehåller 3 rader med IDnr och tidpunkt. Det jag vill göra är att jämföra tidpunkterna i de båda arrayerna och plocka ut de 3 senaste IDnr (ordnat efter tidpunkt). Jag vill dessutom se till så att samma IDnr INTE förekommer flera gånger. 

arrTextID:
(0,0) = 25
(1,0) = 2003-01-12 14:15:12
(0,1) = 17
(1,1) = 2003-01-07 15:16:17
(0,2) = 18
(1,2) = 2002-05-07 01:12:24

arrNewsID
(0,0) = 14
(1,0) = 2003-02-28 15:16:19
(0,1) = 14
(1,1) = 2003-02-05 14:16:47
(0,2) = 15
(1,2) = 2003-01-06 17:15:13

Resultatet ska då bli:
14, 25, 17 (observera att 14 bara förekommer en gång)

Hoppas att något förstår vad jag vill göra och vet hur man gör.

Permalänk: https://www.webforum.nu/p/69707

## #2 — niko, 2003-03-01T13:52Z

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.

Permalänk: https://www.webforum.nu/p/966290

## #3 — Peeer, 2003-03-01T14:06Z

Tack! Den verkar funka fint!

Permalänk: https://www.webforum.nu/p/966293

---

Tråden på webben: https://www.webforum.nu/amne/asp/69707-jämföra-2-arrayer
