webForumDet fria alternativet

Sortering av array

6 svar · 408 visningar · startad av jimpa

jimpaMedlem sedan jan. 2001361 inlägg
#1

Hej,

Jag en massa värden i en array som jag vill kunna sortera innan jag skriver ut dom. Det ser ut ungefär så här:

1,H,45
550,H,45
4,H,45
35,V,45
3,V,45

Men vill ha det sorterat så här:

1,H,45
3,V,45
4,H,45
35,V,45
550,H,45

Jag har sökt i forumet men har inte hittat något svar som hjälpt mig till fullo!

Någon som vet?

Mvh,
Jimmy

emissionMedlem sedan dec. 19996 721 inlägg
#2

Det måste du lösa med någon slags bubble sort.

for i = ubound(minarray) - 1 To 0 Step -1
    for j= 0 to i
        arr1=split(minarray(j),",")
        arr2=split(minarray(j+1),",")
        if cint(arr1(0))>cint(arr2(0)) then
            temp=minarray(j+1)
            minarray(j+1)=minarray(j)
            minarray(j)=temp
        end if
    next
next
jimpaMedlem sedan jan. 2001361 inlägg
#3

Jag provade din kod men jag fick tyvärr ett felmeddelande:

Microsoft VBScript runtime error '800a0009'

Subscript out of range: '[number: 0]'

/test/test.asp, line 25

Rad 25 ser ut så här:

    if cint(arr1(0))\>cint(arr2(0)) then

Mvh

@ndersMedlem sedan juni 200032 969 inlägg
#4

Hur har du skapat din array?

jimpaMedlem sedan jan. 2001361 inlägg
#5

Jag har provat så här:

myGrid = "2,H,2;15,H,2;1,H,3;4,H,2;11,H,1;3,H,3;13,H,4;10,H,1;5,H,1;6,H,4;7,H,1;"
myGrid = split(myGrid, ";")
minarray = myGrid

Mvh

emissionMedlem sedan dec. 19996 721 inlägg
#6

Ta bort det sista semikolonet

jimpaMedlem sedan jan. 2001361 inlägg
#7

Tusen tack! Nu verkar det funka perfekt :)

141 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
138 ms — hämta tråd, inlägg och bilagor (db)