Swaps elements of a 1D array and full or part rows/columns of a 2D array
#include <Array.au3>
_ArraySwap ( ByRef $aArray, $iIndex_1, $iIndex_2 [, $bCol = False [, $iStart = -1 [, $iEnd = -1]]] )
$aArray | Array to modify |
$iIndex_1 | Index of first element (1D) or row/column (2D) to swap |
$iIndex_2 | Index of second element (1D) or row/column (2D) to swap |
$bCol | [optional] If True then for 2D array above parameters refer to columns; if False (default) above parameters refer to rows |
$iStart | [optional] Index in row/column to start swap (2D array only) |
$iEnd | [optional] Index in row/column to end swap (2D array only) |
Success: | 1 |
Failure: | -1 and sets the @error flag to non-zero. |
@error: | 1 - $aArray is not an array 2 - $aArray is not a 1D or 2D array 3 - $iIndex_1 or $iIndex_2 is outside array bounds 4 - $iStart or $iEnd outside array bounds 5 - $iStart is greater than $iEnd |
Optional parameters ignored for 1D arrays.
#include <Array.au3>
Local $aArray[10] = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
_ArrayDisplay($aArray, "Original", Default, 8)
_ArraySwap($aArray, 3, 7)
_ArrayDisplay($aArray, "Swapped Elements 3 and 7", Default, 8)
Local $aArray_Base[10][10]
For $i = 0 To 9
For $j = 0 To 9
$aArray_Base[$i][$j] = $i & " - " & $j
Next
Next
_ArrayDisplay($aArray_Base, "Original", Default, 8)
$aArray = $aArray_Base
_ArraySwap($aArray, 3, 7)
_ArrayDisplay($aArray, "Swapped Rows 3 and 7 in all Cols", Default, 8)
$aArray = $aArray_Base
_ArraySwap($aArray, 3, 7, False, 2, 5)
_ArrayDisplay($aArray, "Swapped Rows 3 and 7 in Cols 2 to 5", Default, 8)
$aArray = $aArray_Base
_ArraySwap($aArray, 3, 7, True)
_ArrayDisplay($aArray, "Swapped Cols 3 and 7 in all Rows", Default, 8)
$aArray = $aArray_Base
_ArraySwap($aArray, 3, 7, True, 2, 5)
_ArrayDisplay($aArray, "Swapped Cols 3 and 7 in Rows 2 to 5", Default, 8)