回复 18# au3x
既然是动态输入,数组太多的话大可以分批次进行组合的.
在输入首两个数组后进行第一次组合,以后每输入完一个数组在原基础上又进行下一步组合.#include <array.au3>
;首输入
Dim $aVarA[4] = [5, 6, 7, 'a']
Dim $aVarB[3] = [1, 2, 3]
Local $aArray = _ArrayCombinationsX($aVarA, $aVarB)
_ArrayDisplay($aArray)
;再来
Dim $aVarC[3] = [9, 8, 7]
$aArray = _ArrayCombinationsX($aArray, $aVarC)
;又来
Dim $aVard[6] = [9, 8, 7, 'b', 'c', 'd']
$aArray = _ArrayCombinationsX($aArray, $aVard)
_ArrayDisplay($aArray)
Func _ArrayCombinationsX($avA1, $avA2)
If Not IsArray($avA1) Or Not IsArray($avA2) Then Return SetError(1)
Local $aRe[1] = [0], $element
For $i = 0 To UBound($avA1) - 1
For $j = 0 To UBound($avA2) - 1
$element = $avA1[$i] & $avA2[$j]
_ArrayAdd($aRe, $element)
Next
Next
_ArrayDelete($aRe, 0)
Return $aRe
EndFunc
|