找回密码
 加入
搜索
查看: 4003|回复: 11

[AU3基础] _ArraySort数组排序怎么才能实现同数据的按第二索引排索

  [复制链接]
发表于 2012-7-2 09:11:22 | 显示全部楼层 |阅读模式
#include <Array.au3>

Local $avArray[5][3] = [ _
        [5, 20, 8], _
        [4, 32, 7], _
        [3, 32, 9], _
        [2, 35, 0], _
        [1, 19, 6]]

_ArraySort($avArray, 0, 0, 0, 1)
_ArrayDisplay($avArray, "副索引2升序排列方式" )

请教怎么样才能让数组排序先按20,32,32,35,19排,然后有两个32的再按后面的7,9排序,非常感谢您的回复。
发表于 2012-7-2 10:35:06 | 显示全部楼层
本帖最后由 netegg 于 2012-7-2 14:30 编辑

[au3]#include <Array.au3>

Local $avArray[5][3] = [ _
        [5, 20, 8], _
        [4, 32, 7], _
        [3, 32, 9], _
        [2, 35, 0], _
        [1, 19, 6]]
_arraysort($avArray, 0,0,0,1)
For $i= 0 To 4
$num = _arrayfindall($avArray, $avArray[$i][1],0,0,0,0,1)
If UBound($num) <>1 Then
         _arraysort($avArray, 0,$num[0], $num[UBound($num)-1], 2)
endif
next
_ArrayDisplay($avArray)
[/au3]

又想了想,原始数组元素少的话可以,多的话效率不好,有重复计算
发表于 2012-7-2 13:37:39 | 显示全部楼层
看了半天,终于看懂了。思路妙啊,学习了。
 楼主| 发表于 2012-7-2 18:38:30 | 显示全部楼层
非常感谢 netegg 大大的回复,学习了,感谢,不知道有没有兼顾效率的方法啊,数据量可能上万的情况会怎么样啊
发表于 2012-7-2 19:19:23 | 显示全部楼层
回复 4# fcurrk
如果数据量一般大(不超过500,具体数忘了),可以先求出单一元素,然后排序,再大的话建议直接数据库处理,交给数据库引擎干这事比较合适
 楼主| 发表于 2012-7-3 12:01:59 | 显示全部楼层
回复 5# netegg


感谢指点,请教一下,这些数据我是从SQL里查询出来的,但查询出来的数据我得先进行处理,所以无法在SQL里就排好序,请问有什么别的办法不,期待指点。
非常感谢。
发表于 2012-7-3 12:50:25 | 显示全部楼层
回复 6# fcurrk
查询出来的数据怎么保存的,还是想直接得到排序后的结果
 楼主| 发表于 2012-7-3 13:00:59 | 显示全部楼层
回复 7# netegg


感谢,我继续学习,虽然还没有完全搞明白,但有思路就是好。
 楼主| 发表于 2012-7-3 13:06:09 | 显示全部楼层
回复 7# netegg


   是这样一回事,我有SQL查询出结果,保存到数组,但查询出来的数据有几列是要按照条件进行处理的,比如在数据库里查询到一个数值,是负数的情况下要加上(其中一列数值*1+10000),在正数的情况下要加上(其中一列数值+10000),所以数据库里我就不会处理了,只能查询出来后数组保存的时候进行判断再处理。

但这样就没有办法在SQL里进行排序了,我需要得到排好序的数据然后按固定格式输出到文本。
发表于 2012-7-3 13:12:53 | 显示全部楼层
回复 9# fcurrk
加查询条件不行吗?
 楼主| 发表于 2012-7-3 13:25:53 | 显示全部楼层
回复 10# netegg


    不会弄,能告诉我你的QQ吗?我发给你帮我看下
发表于 2012-7-3 16:14:49 | 显示全部楼层
回复 11# fcurrk
sql的语法我也不太会
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-15 06:43 , Processed in 0.075332 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表