- Offizieller Beitrag
Kurz und knapp:
_Array2DJoin(ByRef $ARRAY, $ARR2JOIN)
fügt den Inhalt des als $ARR2JOIN übergebenen Arrays zum $ARRAY hinzu.
- 1D können mit 2D -Arrays gemischt werden
- 2D -Arrays können unterschiedlich große 2.te Dimensionen haben
Spoiler anzeigen
;----------------------------------------------------------------------------------------------------------------------
; Fuction _Array2DJoin(ByRef $ARRAY, $AR2JOIN)
;
; Description Join 2 Arrays, 1D/2D can be mixed
;
; Parameter $ARRAY 1st array, will be joined with 2nd
; $AR2JOIN 2nd array
;
; Return Succes -1 ByRef $ARRAY
; Failure 0 set @error = 1; given array(s) are not array
;
; Author BugFix ([email='bugfix@autoit.de'][/email])
;----------------------------------------------------------------------------------------------------------------------
Func _Array2DJoin(ByRef $ARRAY, $AR2JOIN)
If ( Not IsArray($ARRAY) ) Or ( Not IsArray($AR2JOIN) ) Then
SetError(1)
Return 0
EndIf
Local $UB2ndAR = UBound($ARRAY,2)
If @error = 2 Then $UB2ndAR = 0
Local $UB2nd2JOIN = UBound($AR2JOIN,2)
If @error = 2 Then $UB2nd2JOIN = 0
Select
Case $UB2ndAR = 0 And $UB2nd2JOIN = 0
For $i = 0 To UBound($AR2JOIN)-1
ReDim $ARRAY[UBound($ARRAY)+1]
$ARRAY[UBound($ARRAY)-1] = $AR2JOIN[$i]
Next
Return -1
Case $UB2ndAR > 0 And $UB2nd2JOIN = 0
Local $arTmp = $AR2JOIN
ReDim $AR2JOIN[UBound($AR2JOIN)][$UB2ndAR]
For $i = 0 To UBound($arTmp)-1
$AR2JOIN[$i][0] = $arTmp[$i]
Next
Case $UB2ndAR = 0 And $UB2nd2JOIN > 0
Local $arTmp = $ARRAY
ReDim $ARRAY[UBound($ARRAY)][$UB2nd2JOIN]
For $i = 0 To UBound($arTmp)-1
$ARRAY[$i][0] = $arTmp[$i]
Next
Case $UB2ndAR > 0 And $UB2nd2JOIN > 0
Select
Case $UB2ndAR < $UB2nd2JOIN
ReDim $ARRAY[UBound($ARRAY)][$UB2nd2JOIN]
Case $UB2ndAR > $UB2nd2JOIN
ReDim $AR2JOIN[UBound($AR2JOIN)][$UB2ndAR]
EndSelect
EndSelect
For $i = 0 To UBound($AR2JOIN)-1
ReDim $ARRAY[UBound($ARRAY)+1][UBound($ARRAY,2)]
For $k = 0 To UBound($AR2JOIN,2)-1
$ARRAY[UBound($ARRAY)-1][$k] = $AR2JOIN[$i][$k]
Next
Next
Return -1
EndFunc