Ordernar Array
#1
Posted 21/07/2004, 17:39
exemplo
SQArray = array("a","d","z","h","y")
eu queria mostrar na tela em order cresecente ou descrecente.... os valores do array
lembrando que os valores são dinamicos..
tem como fazer isso???
#2
Posted 21/07/2004, 18:04
Retirada de: http://www.freecode....NRBS34228JGAHTP<%
'--------------------------------------------------------------
' Descrição:
' Função para Ordernar numeros em ordem decrescente
' e mostrar a quantidade de vezes que um mesmo numero
' se repetiu dentro de um array.
' Autor: José Antônio Gregório
' Email: ja_gregorio@hotmail.com
'---------------------------------------------------------------
Function ordena(sequencia)
numero=sequencia
'Atribuo o qtde de 1 para cada item do array
Dim total(100)
For cont=0 To UBound(numero)
total(cont)=1
Next
'Aqui eu agrupo os numeros iguais e somo as quantidades
For contador=0 To 100
For count=contador+1 To UBound(numero)
IF numero(contador)<>"anulado" And numero(contador)=numero(count) Then
Total(contador)=Total(contador)+1
numero(count)="anulado"
total(count)=0
End IF
Next
Next
Dim maior(100), qtde(100)
'o código abaixo coloca os números em ordem decrescente
'o primeiro for indica q nº vai ser comparado com os outros
'o segundo for indica qual é o maior nº
'no 3º for eu anulo o maior numero para ele não ser novamente identificado como maior.
For cont=0 To UBound(numero)
maior(cont)=numero(0)
For count=1 To UBound(numero)
IF maior(cont)< numero(count) Then
maior(cont)=numero(count)
End IF
Next
For contador=0 To UBound(numero)
IF maior(cont)=numero(contador) Then
numero(contador)=0
qtde(cont)=total(contador)
End IF
Next
Next
'Gerando o resultado que vai ser impresso
For cont=0 To UBound(numero)
IF qtde(cont)<>0 And maior(cont)<>"0" Then
varResult=varResult & maior(cont) &" - "& qtde(cont)& "<br>"
End IF
Next
ordena=varResult
End Function
organizar=array("a","d","z","h","y")
Response.write ordena(organizar)
%>
Créditos pertencentes ao autor.
Abraços!
' profissão: ALOG Data Centers do Brasil (analista de sistemas)
' publicidade: ALOG Data Centers do Brasil
#3
Posted 21/07/2004, 19:43
Dessa vez, podendo ordenar da forma que você quiser e os números lado a lado, separados por vírgula.
Para chamar a função:<%
'--------------------------------------------------------------
' Descrição:
' Função para Ordernar numeros em ordem decrescente
' e mostrar a quantidade de vezes que um mesmo numero
' se repetiu dentro de um array.
' Autor: José Antônio Gregório
' Email: ja_gregorio@hotmail.com
'---------------------------------------------------------------
Function ordena(sequencia,pOrder)
numero=sequencia
if pOrder = 0 then iniCont = UBound(numero) : fimCount = LBound(numero) : pTipo = - 1
if pOrder = 1 then iniCont = LBound(numero) : fimCount = UBound(numero) : pTipo = 1
'Atribuo o qtde de 1 para cada item do array
Dim total(100)
For cont = iniCont To fimCount step pTipo
total(cont)=1
Next
'Aqui eu agrupo os numeros iguais e somo as quantidades
For contador=0 To 100
For count=contador+1 To UBound(numero)
IF numero(contador)<>"anulado" And numero(contador)=numero(count) Then
Total(contador)=Total(contador)+1
numero(count)="anulado"
total(count)=0
End IF
Next
Next
Dim maior(100), qtde(100)
'o código abaixo coloca os números em ordem decrescente
'o primeiro for indica q nº vai ser comparado com os outros
'o segundo for indica qual é o maior nº
'no 3º for eu anulo o maior numero para ele não ser novamente identificado como maior.
For cont=0 To UBound(numero)
maior(cont)=numero(0)
For count=1 To UBound(numero)
IF maior(cont)< numero(count) Then
maior(cont)=numero(count)
End IF
Next
For contador=0 To UBound(numero)
IF maior(cont)=numero(contador) Then
numero(contador)=0
qtde(cont)=total(contador)
End IF
Next
Next
'Gerando o resultado que vai ser impresso
nConta = "1"
For cont = iniCont To fimCount step pTipo
IF qtde(cont)<>0 And maior(cont)<>"0" Then
If nConta <> 1 Then sVirgula = ", "
varResult = varResult & sVirgula & maior(cont)
End IF
nConta = nConta + 1
Next
ordena=varResult
End Function
%>
<%
organizar=array("a","d","z","h","y")
Response.write ordena(organizar,tipo)
%>
Onde tipo:
0 - Crescente
1 - Decrescente
Abraços!
' profissão: ALOG Data Centers do Brasil (analista de sistemas)
' publicidade: ALOG Data Centers do Brasil
#4
Posted 21/07/2004, 23:05
Mas ajuntai tesouros no céu, onde nem a traça nem a ferrugem consomem, e aonde os ladrões não minam nem roubam.
MT 6 . 19
Jhonathas da Silveira de Matos (UIN: 57422166 / MSN: jhon_asp)
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)