Array Reverse

I recently came in need of a way to reverse the order of the elements in my array. Here's what I came up with.

view plain print about
1array function reverseArray(required array inputArray)
2    hint="reverses the order of the array"
3    output="false"
4{
5    var j = arrayLen(arguments.inputArray);
6
7    for (var i=1;i<=arrayLen(arguments.inputArray)/2;i++) {
8        arraySwap(arguments.inputArray,i,j--);
9    }
10
11    return arguments.inputArray;
12}

Query To Array

Here's another one if you want to turn the query variable into an array of structures.

view plain print about
1array function queryToArray (required query data)
2    output="false"
3{
4    local.columns = listToArray(arguments.data.columnList);
5
6    local.queryArray = [];
7
8    for (local.rowIndex = 1; local.rowIndex <= arguments.data.recordCount; local.rowIndex++) {
9        local.row = {};
10
11        for (local.columnIndex = 1; local.columnIndex <= arrayLen(local.columns); local.columnIndex++) {
12            local.columnName = local.columns[local.columnIndex];
13
14            local.row[local.columnName] = arguments.data[local.columnName][local.rowIndex];
15        }
16
17        arrayAppend(local.queryArray, local.row);
18    }
19
20    return(local.queryArray);
21}

Query To Struct

Below is a very handy function to convert a query variable into a structure of structure. Enjoy.

view plain print about
1struct function queryToStruct(required query data, boolean unique=false)
2    output="false"
3{
4    var result = {};
5    var columns = listToArray(arguments.data.columnList);
6
7    for (var r=1;r<=arguments.data.recordCount;r++) {
8        var row = {};
9
10        for (var c=1;c<=arrayLen(columns);c++) {
11            var columnName = columns[c];
12            structInsert(row, columnName, arguments.data[columnName][r]);
13        }
14
15        structInsert(result, r, row);
16    }
17
18    if (structCount(result) == 1 && arguments.unique) {
19        result = result[structKeyArray(result)[1]];
20    }
21
22    return result;
23}