Array UDF - Script Breaking Changes

The Array UDF has been almost completely rewritten to support 2D arrays, to improve the speed of multiple insertion and deletions and correct bugs.
This means that scripts written for AutoIt up to version 3.3.12.0 might not run correctly with later versions and may need to be modified.
The following table lists the differences between the old and the new version.

Changed functions/parameters
UDF Function/Parameter Comments
All changed functions Values returned in @error on function error may well have changed - details on specific Help file pages.
_ArrayAdd Now supports 2D arrays and can add multiple lines in one call.
   $vValue Altered: Value(s) to add - can be a single item, a delimited string or an array.
   $iStart Added: If adding data to a 2D array, the column at which the insertion starts in each row (default = 0).
   $sDelim_Item
   $sDelim_Row
Added: If data passed as a delimited string these determine the number of rows/columns to be added.
   $iForce Added: Changes function behaviour - either forces addtion of added data as a single item or forces datatype for added items
_ArrayBinarySearch Now supports 2D arrays.
   $iColumn Added: 0-based index of column to search (default = 0).
_ArrayConcatenate Now supports 2D array swith equal number of columns.
_ArrayDelete Now support multiple deletions.
   $vRange Altered: Element(s) to delete - either a single index, a range string or a 1D array with a count in the [0] element
_ArrayDisplay Buttons at bottom of dialog can be hidden
_ArrayFindAll Now supports searching 2D arrays by row as well as by column
   $fRow Added: If set to True, $iSubItem determines the row and not the column in a 2D array.
_ArrayInsert Now supports 2D arrays and can insert multiple lines in the same or different positions in one call.
   $vRange Altered: Element(s) above which the insertion is to take place - either a single index, a range string or a 1D array with a count in the [0] element
   $vValue Added: Value(s) to insert - can be a single item, a delimited string or an array.
   $iStart Added: If inserting data to a 2D array, the column at which the insertion starts in each row (default = 0).
   $sDelim_Item
   $sDelim_Row
Added: If data is passed as a delimited string these determine the number of rows/columns to be added.
   $hDataType Added: If $vValue is a delimited string the data is converted to a string. Assigning a datatype function (Number, HWnd, etc) forces it into that datatype
_ArrayMax Now supports 2D arrays.
   $iSubItem Added: 0-based column to search.
_ArrayMaxIndex Now supports 2D arrays.
   $iSubItem Added: 0-based column to search.
_ArrayMin Now supports 2D arrays.
   $iSubItem Added: 0-based column to search.
_ArrayMinIndex Now supports 2D arrays.
   $iSubItem Added: 0-based column to search.
_ArraySearch Now supports searching 2D arrays by row as well as by column
   $fRow Added: If set to True, $iSubItem determines the row and not the column in a 2D array.
_ArraySwap Completely rewritten to swap full or part columns/rows within a 2D array
   $iIndex_1
   $iIndex_2
Altered: Index of the rows/columns to swap
    $bCol Added: If set to True, $iIndex_1 and $iIndex_2 determine the column and not the row.
   $iStart
   $iEnd
Added: Elements within the rows/columns to swap.
_ArrayToClip Now just a simple wrapper for _ArrayToString. See details of parameters for that function.
_ArrayToString Now supports 2D arrays
   $sDelim_Item
   $sDelim_Row
Added: Determine the column/row delimiters.
   $iStart_Row
   $iEnd_Row
Added: Limit the rows to extract.
   $iStart_Col
   $iEnd_Col
Added: Limit the columns to extract.
_ArrayTranspose Now transposes 1D arrays
_ArrayTrim Now supports 2D arrays
   $iSubItem Added: Column to trim
_ArrayUnique For consistency with all other functions $iColumn is now 0-based, not 1-based


New functions/parameters
New UDF
Function
Comments
_ArrayColInsert This function is used to insert columns into 1D or 2D arrays.
_ArrayColDelete This function is used to delete columns from 2D arrays.
_ArrayExtract This function extracts a smaller array from inside 1D and 2D arrays.
_ArrayShuffle This function uses the FisherYates algorithm to shuffle all or some of the rows of 1D and 2D arrays. The shuffle can be limited to a specific column in a 2D array.


Unchanged functions
Unchanged UDF Function
_ArrayCombinations
_ArrayPermute
_ArrayPop
_ArrayPush
_ArrayReverse