scorpio1102 发表于 2014-5-7 11:34:48

(已解决)如何把一维数组转二维数组

本帖最后由 scorpio1102 于 2014-7-15 11:45 编辑

如何把一个一维数组array,元素类似“afc123,中国,99920-11,232-423232456”(逗号分割)转成二维数组array2d

skyfree 发表于 2014-5-7 11:57:23

本帖最后由 skyfree 于 2014-5-7 12:01 编辑

大概是这样的效果?

#include <Array.au3>

Opt('MustDeclareVars', 1)

_Main()
Exit

Func _Main()
        Local $a_1DArray[] = ['张杰,男,北京,27', _
                        '刘阳,女,广州,23,学生', _
                        '李伟,男,上海,25']
        _ArrayDisplay($a_1DArray, '$a_1DArray')
       
        Local $a_2DArray = _Array_1D_to_2D($a_1DArray)
        _ArrayDisplay($a_2DArray, '$a_2DArray')
       
EndFunc   ;==>_Main

Func _Array_1D_to_2D(Const ByRef $a_1DArray)
        Local $a_2DArray, $p = 0
        Local $ta_Arr
        Local $n = 1
        Local $i, $j
        For $i = 0 To UBound($a_1DArray, 1) - 1
                $ta_Arr = StringSplit($a_1DArray[$i], ',')
;~                 _ArrayDisplay($ta_Arr, '$ta_Arr')
                If $ta_Arr > $n Then $n = $ta_Arr
               
                ReDim $a_2DArray[$p + 1][$n]
                For $j = 1 To $ta_Arr
                        $a_2DArray[$p][$j - 1] = $ta_Arr[$j]
                Next
                $p += 1
        Next
        Return $a_2DArray
EndFunc   ;==>_Array_1D_to_2D

scorpio1102 发表于 2014-5-7 13:57:00

回复 2# skyfree


    非常感谢。

skyfree 发表于 2014-5-7 16:29:27

回复 3# scorpio1102


    不谢

joyran 发表于 2014-5-7 19:48:52

不错不错!!

navy 发表于 2014-5-7 20:40:11

回复 2# skyfree

Local $a_1DArray[] = ['张杰,男,北京,27', '刘阳,女,广州,23,学生', '李伟,男,上海,25']
应该改为如下:
Local $a_1DArray = ['张杰,男,北京,27', '刘阳,女,广州,23,学生', '李伟,男,上海,25']

不知道你用的是哪个版本的Au3,我目前用的这个要改成$a_1DArray才能执行。
PS:我这边是win7 32bit AU3版本:3.3.7.15

skyfree 发表于 2014-5-7 21:37:21

回复 6# navy


    3.3.10不需要。

heavenm 发表于 2014-5-7 22:47:34

这个二维数组 很不错的UDF
一直在用你看看有你需要的么
http://www.autoitx.com/forum.php?mod=viewthread&tid=39869&highlight=%B6%FE%CE%AC

ooxxgod 发表于 2014-5-8 14:08:21

学习了 数组

haopp1 发表于 2014-5-8 16:25:32

学习中。。。。。。。。。。。。。

ncxj 发表于 2015-11-22 18:56:00

这个很好,又可以偷懒了.
页: [1]
查看完整版本: (已解决)如何把一维数组转二维数组