===== Serialize (Function) =====
==== Format ====
**serialize** ( [[arrays|variable[]]] )\\
**serialize** ( [[Lists|{ x1, y1, x2, y2, x3, y3 ... }]] )
returns [[stringexpressions|string_expression]]
==== Description ====
The serialize statement creates a string that encodes the dimensions, types, and values in an array. The [[Unserialize|Unserialize]] function will take a "serialized" string and return an array or list.
Often developers will create a serialized string so that they may save the values in an array into a data file or a database table.
=== Format of the Serialized Array ===
The string representing the array's data is a series of values separated by a colon ':'. The first value represents the number of rows and the second the number of columns. A one dimensional array will have a single row (1), with the length in the second value. The elements of the array follow. The first character of each value contains a marker byte defining the data type ('0'-unassigned, '1'-integer, '2'-float, and '3'-string). The actual array data follows. Strings are converted to hexadecimal so that any Unicode or special characters will be stored without change. The strings returned will contain ONLY ':', '.', '0'-'9', and 'a'-'f'.
The array {1,2,3,4,5.555,"six"} would be serialized to "1:6:11:12:13:14:25.555:3736978" and the array {{1,2},{3,4}} would be serialized to "2:2:11:12:13:14".
==== Example ====
dim a(3,4)
a[0,0] = 0
a[1,1] = 1
a[2,2] = 2
a[0,1] = 'string with "quotes"'
a[1,2] = 1.234
stuff = serialize(a[])
print stuff
dim c = unserialize(stuff)
# the array c is an exact copy of the array a
will display
3:4:10:3737472696e672077697468202271756f74657322:0:0:0:11:21.234:0:0:0:12:0
==== See Also ====
{{page>en:start#String Handling&noheader}}
==== History ====
|1.99.99.66|New to Version|
|1.99.99.72|added required [] to passing variable array|