_ArraySort数组排序怎么才能实现同数据的按第二索引排索
#include <Array.au3>Local $avArray = [ _
, _
, _
, _
, _
]
_ArraySort($avArray, 0, 0, 0, 1)
_ArrayDisplay($avArray, "副索引2升序排列方式" )
请教怎么样才能让数组排序先按20,32,32,35,19排,然后有两个32的再按后面的7,9排序,非常感谢您的回复。 本帖最后由 netegg 于 2012-7-2 14:30 编辑
#include <Array.au3>
Local $avArray = [ _
, _
, _
, _
, _
]
_arraysort($avArray, 0,0,0,1)
For $i= 0 To 4
$num = _arrayfindall($avArray, $avArray[$i],0,0,0,0,1)
If UBound($num) <>1 Then
_arraysort($avArray, 0,$num, $num, 2)
endif
next
_ArrayDisplay($avArray)
又想了想,原始数组元素少的话可以,多的话效率不好,有重复计算 看了半天,终于看懂了。思路妙啊,学习了。 非常感谢 netegg 大大的回复,学习了,感谢,不知道有没有兼顾效率的方法啊,数据量可能上万的情况会怎么样啊 回复 4# fcurrk
如果数据量一般大(不超过500,具体数忘了),可以先求出单一元素,然后排序,再大的话建议直接数据库处理,交给数据库引擎干这事比较合适 回复 5# netegg
感谢指点,请教一下,这些数据我是从SQL里查询出来的,但查询出来的数据我得先进行处理,所以无法在SQL里就排好序,请问有什么别的办法不,期待指点。
非常感谢。 回复 6# fcurrk
查询出来的数据怎么保存的,还是想直接得到排序后的结果 回复 7# netegg
感谢,我继续学习,虽然还没有完全搞明白,但有思路就是好。 回复 7# netegg
是这样一回事,我有SQL查询出结果,保存到数组,但查询出来的数据有几列是要按照条件进行处理的,比如在数据库里查询到一个数值,是负数的情况下要加上(其中一列数值*1+10000),在正数的情况下要加上(其中一列数值+10000),所以数据库里我就不会处理了,只能查询出来后数组保存的时候进行判断再处理。
但这样就没有办法在SQL里进行排序了,我需要得到排好序的数据然后按固定格式输出到文本。 回复 9# fcurrk
加查询条件不行吗? 回复 10# netegg
不会弄,能告诉我你的QQ吗?我发给你帮我看下 回复 11# fcurrk
sql的语法我也不太会
页:
[1]