Recital Arrays
Contents
- 1 Recital Arrays
- 1.1 An Overview of Arrays in Recital
- 1.2 How to Create a Static Array in Recital
- 1.3 How to Create an Associative Array in Recital
- 1.4 Accessing Elements in a Static Array
- 1.5 Accessing Elements in an Associative Array
- 1.6 Changing, Adding and Removing Elements From Arrays
- 1.7 Looping Through Arrays
- 1.8 Replacing Sections of an Array
- 1.9 Sorting an Array
- 1.10 Passing Arrays as Function Arguments
- 1.11 Miscellaneous Array Functions
- 1.12 Summary
Recital Arrays
An Overview of Arrays in Recital
How to Create a Static Array in Recital
Static Arrays
A static array is an ordered list of elements (variables) that is of a fixed size (number of elements). You declare a static array by specifying the number of elements when you declare a variable.
private tab[ 20 ] // declare a static array of 20 elements all initialized to False // iterate through the array (note the use of the alen( ) function to find the length of the array for i=1 to alen( tab ) // change each array element to hold a numeric value tab[ i ] = i endfor
You can initialize a static array with one statement.
// declare the array and init all elements to false declare tab[10, 10] // init all elements to zero tab = 0
You can create and initialize static arrays using static array initializers.
// simple one dimensional array with 2 elements private tab = { "Hello", "world" } // two-dimensional array of two rows with three columns in each row private tab2 = { { "Hello", 10, date() ], { "world", 20, date()+1 } } // create an array on the fly mytab = { 10, 20, 30, 40, 50, 60 }
You can view the contents of a static array using the echo or ? commands.
? tab
How to Create an Associative Array in Recital
An associative array (also known as a dynamic array) is a collection of key/value pairs where the key can be used to retrieve the value. Associative arrays are dynamic, meaning that elements can be added and removed dynamically.
private tab[] // note the use of [] to denote a dynamic array tab["name"] = "bill" tab["age"] = 25 tab["dob"] = date()
Associative arrays can be created and initialized in one statement using the array( ) function.
tab = array("name" => "bill", "age" => 25, ""dob" => date())
You can view the contents of an associative array using the echo or ? commands.
? tab
Accessing Elements in a Static Array
Elements in a static array are accessed using the element number, or the element subscripts in the case of two-dimensional arrays. Array element numbers and subscripts start from 1 and are specified in square or round brackets after the array name. Row and column subscripts are separated by a comma: [row,column].
? array1[3] ? array2[2,4] ? array3(5,2)
- aelement() - return the number of an array element from the element subscripts
numeric = aelement(arrayname as character, row as numeric [, column as numeric])
- asubscript() - return the row or column subscript of an array element from the element number
numeric = asubscript(arrayname as character, element as number, roworcolumn as numeric)
- alen() - return the number of elements, rows or columns of an array
numeric = alen(arrayname as character [, rowsorcolumns as numeric])
Accessing Elements in an Associative Array
Changing, Adding and Removing Elements From Arrays
- aadd() - add a new element to the end of an array
expression = aadd(arrayname as character, newelement as expression)
- adel() - delete an element from an array
logical = adel(arrayname as character, element as numeric | row as numeric [, dimension as numeric])
- asize() - resize an array
asize(arrayname as character, elements as numeric)
Looping Through Arrays
The foreach...endfor command is used to iterate over each element in an array or member in an object or associative array.
foreach <array> as <value as variable> | <array> as <key variable> => <value as variable> <statements> endfor
The array must be the name of an existing array or object. The value is a reference to be loaded with the contents of each element or member in turn. Using the <key> => <value> syntax, the member names of an object or associative array can also be accessed.
Examples
// static array numbers = array(1,2,3,4,5,6,7,8,9,10) foreach numbers as elem ? elem * elem endfor // associative array private myarray = array("Name" => "Recital", "Description" => "database") foreach myarray as key => value echo "key=" + key + " value=" + value + "\n" endfor
Replacing Sections of an Array
- acopy() - copy elements from one array to another
logical = acopy(fromarrayname as character, toarrayname as character [, fromstartelement as numeric [, elements as numeric [, tostartelement as numeric]]])
Sorting an Array
- asort() - sort the character elements of the specified array
logical = asort(arrayname as character [, startelement as numeric [, endelement as numeric [, reverse as numeric]]])
Passing Arrays as Function Arguments
Miscellaneous Array Functions
Table and File Information in Arrays
- abrowse() - browse a two-dimensional array in a spreadsheet style format
numeric = arow()
numeric = arow()
- adir() - return the number of files matching a file pattern
numeric = adir(pattern as character [, filenames as array [, filesizes as array [, filedates as array [, filetimes as array [, compatibility as array]]]]])
- afields() - fill a series of arrays with table structure details
numeric = afields(fieldnames as array [, datatypes as array [, lengths as array [, decimals as array]]])
In FoxPro, Foxbase or VFP compatibility mode, Visual FoxPro syntax is supported:
numeric = afields(fieldinfo as array [, workarea as numeric | alias as character])
Converting a String Into an Array
- astore() - fill an array from a string with separate character elements and return the number of elements
numeric = astore(arrayname, string as character, separator as character)
- explode() - separate a character string into individual elements and return as an array
array = explode(separator as chatacter, string as character)
Converting an Array into a String
- astring() - return an array as a character string, with the elements separated by a comma or other specified character
character = astring(arrayname [, separator as character])
- implode() - return an array as a character string, with the elements separated by a specified character
character = implode(separator as character, arrayname)
Numeric Array Functions
- aaverage() - calculate the average of element values in an array
numeric = aaverage(arrayname as character)
- amax() - return the highest element value in an array
numeric = amax(arrayname as character)
- amin() - return the lowest element value in an array
numeric = amin(arrayname as character)
- asum() - calculate the sum of element values in an array
numeric = asum(arrayname as character)