====== PHP-Functions ====== This chapter shows you the main functions of //PHP-Code// Elements which can be used. The [[php|Introduction in PHP-Code]] will help you to integrate all PHP functions for your questionnaire. At the very end of this page will be a helpful information how the documentation of the PHP-functions can be read: [[#detailed_functions|Function in Detail]] ===== Basic Fuctions for Filtering, Questions and Text ===== See also [[filters|filter questions und filters]]. * ''[[:en:create:functions:value|value()]]'' -- Use answer of participant, e.g. for a filter question * ''[[:en:create:functions:gotopage|goToPage()]]'' -- Jump to another page immediately * ''[[:en:create:functions:gotopage#end_questionnaire|goToPage('end')]]'' -- End the current interview * ''[[:en:create:functions:repeatpage|repeatPage()]]'' -- Show recent page again * ''[[:en:create:functions:redirect|redirect()]]'' -- Redirect the respondent to a different website * ''[[:en:create:functions:question|question()]]'' -- Display a question within the questionnaire * ''[[:en:create:functions:text|text()]]'' -- Display a text element within the questionnaire * ''[[:en:create:functions:show|show()]]'' -- Display a question, combined question or text or activate a feature element * ''[[:en:create:functions:debug|debug()]]'' -- Show content of a data or PHP variable ===== Modify How to Display a Questionnaire Page ===== * ''[[:en:create:functions:option|option()]]'' -- Modify page display settings (buttons, progress bar) * ''[[:en:create:functions:preset|preset()]]'' -- Preset a response for a question * ''[[:en:create:functions:markfail|markFail()]]'' -- Set the marker "response missing" for an input * ''[[:en:create:functions:html|html()]]'' -- Output of HTML-Code within questionnaire * ''[[:en:create:functions:textlink|textlink()]]'' -- Create a hyperlink that shows a text element in a pop-up window * ''[[:en:create:functions:buttontopage|buttonToPage()]]'' -- Button to jump within the questionnaire * ''[[:en:create:functions:buttoncode|buttonCode()]]'' -- Create-HTML-Code for next/back button * ''[[:en:create:functions:buttonhide|buttonHide()]]'' -- Do not show back/next buttons at the page's bottom * ''[[:en:create:functions:library|library()]]'' -- Make a JavaScript or PHP library available * ''[[:en:create:functions:pagecss|pageCSS()]]'' -- Add CSS instructions to a single questionnaire page * ''[[:en:create:functions:pagehead]]'' -- Store meta-information about the questionnaire page ===== Functions for Randomization ===== SoSci Survey supports several functions for special random selections and random group assignments. For a simple experimental variation, we recommend a [[:en:create:questions:random]] ([[randomization|Randomization]]). * ''[[:en:create:functions:put|put()]]'' -- Save a value in the data set * ''[[:en:create:functions:random|random()]]'' -- Dice a random number (with replacement) * ''[[:en:create:functions:random_p|random_p()]]'' -- Random number in correlation to likelihood * ''[[:en:create:functions:random_items|random_items()]]'' -- Randomly select items from a list * ''[[:en:create:functions:randomuse]]'' -- Storing slips of paper from a random number generator * ''[[:en:create:functions:urndraw|urnDraw()]]'' -- Draw out from urn (random selection without replacement) * ''[[:en:create:functions:urnputaway|urnPutAway()]]'' -- Put away the chit drawn via ''urnDraw()'' * ''[[:en:create:functions:urnstatus|urnStatus()]]'' -- Retrieve current status of an urn ===== Advanced Programming ===== * ''[[:en:create:functions:replace|replace()]]'' -- Prepare a placeholder * ''[[:en:create:functions:registervariable|registerVariable()]]'' -- Register PHP-Variable for following sites * ''[[:en:create:functions:id|id()]]'' -- Create a question or variable label from it's components * ''[[:en:create:functions:getitems|getItems()]]'' -- Order items of question by selected rules * ''[[:en:create:functions:getquestions|getQuestions()]]'' -- Enlist a section's questions * ''[[:en:create:functions:getitemtext|getItemtext()]]'' -- Retrieve the text of a specific items or option * ''[[:en:create:functions:getvaluetext|getValueText()]]'' -- Retrieve the label of a response code/option * ''[[:en:create:functions:gettextelement|getTextElement()]]'' -- Retrieve the content of a text element * ''[[:en:create:functions:getvariables]]'' -- Return a list of variables from the dataset * ''[[:en:create:functions:serialcheck|serialCheck()]]'' -- Ask for serial number * ''[[:en:create:functions:readget|readGET()]]'' -- Read converted variable from link * ''[[:en:create:functions:sendjson|sendJSON()]]'' -- Send HTTP request in JSON format (REST API) * ''[[:en:create:functions:sendjson|sendPOST()]]'' -- Send HTTP request in POST format (REST API) * ''[[:en:create:functions:sendjson|sendXML()]]'' -- Send HTTP request in XML format (REST API) * ''[[:en:create:functions:setnextpage|setNextPage()]]'' -- Set side for click on ,,go further" * ''[[:en:create:functions:setpageorder|setPageOrder()]]'' -- Change the order to display subsequent questionnaire pages * ''[[:en:create:functions:looppage|loopPage()]]'' -- Show a page multiple times in a loop * ''[[:en:create:functions:looptopage|loopToPage()]]'' -- Show multiple pages multiple times in a loop * ''[[:en:create:functions:loopindex]]'' -- Get the ''loopPage()'' or ''setPageOrder()'' page counter * ''[[:en:create:functions:pagestop|pageStop()]]'' -- Do not show any further contents on the questionnaire page * ''[[:en:create:functions:setlanguage|setLanguage()]]'' -- Change language * ''[[:en:create:functions:buttondatacode|buttonDataCode()]]'' -- Add a custom button on the page that sends additional information * ''[[:en:create:functions:buttondataget|buttonDataGet()]]'' -- Get the data sent via ''buttonDataCode()'' ===== Runtime Information ===== * ''[[:en:create:functions:info]]'' – Meta informationen int the current case or output configuration * ''[[:en:create:functions:infovars]]'' -- Information on variables in the dataset * ''[[:en:create:functions:getroute|getRoute()]]'' -- Tell if the next or back button was hit previously * ''[[:en:create:functions:casenumber|caseNumber()]]'' -- Number of actual interviews * ''[[:en:create:functions:caseserial|caseSerial()]]'' -- Serial number used in interview * ''[[:en:create:functions:casetime|caseTime()]]'' -- Show length of stay on one or more sites * ''[[:en:create:functions:casetoken|caseToken()]]'' -- Identification of interview * ''[[:en:create:functions:casedata]]'' -- Get all data collected in the current interview * ''[[:en:create:functions:reference|reference()]]'' -- Ask for reference (within link to questionnaires) * ''[[:en:create:functions:getanswermissing|getAnswerMissing()]]'' -- Information for site repeat if questions was obligated * ''[[:en:create:functions:listfails|listFails()]]'' -- List of not responded obligation questions * ''[[:en:create:functions:getlanguage|getLanguage()]]'' -- Determine language ===== Coordination of Several Questionnaires ===== * ''[[:en:create:functions:gotoquestionnaire]]'' -- Jump from one Questionaire to the next (once) * ''[[:en:create:functions:gotoparent]]'' -- Go back to the formerly Questionaire * ''[[:en:create:functions:multileveldown]]'' -- Start a sub-questionaire inside the main questionaire (if necessary also several times) * ''[[:en:create:functions:multileveldata]]'' -- Get data specified in ''multiLevelDown()'' * ''[[:en:create:functions:multilevelreturn]]'' -- Return from the sub-questionnaire to the main questionnaire * ''[[:en:create:functions:multilevelresponse]]'' -- Get data specified in ''multiLevelReturn()'' * ''[[:en:create:functions:multilevelput]]'' -- Write a value directly into the higher-level record * ''[[:en:create:functions:multilevelvalue|multiLevelValue]]'' -- Read a value directly from the higher-level record * ''[[:en:create:functions:multilevelurl]]'' -- Create a URL for a sub-questionnaire to be used later * ''[[:en:create:functions:multilevelprepare]]'' -- Create a subordinate case and preset it with values, to be used with a [[:en:create:questions:multilevel]] ===== Databank for Contents ===== * ''[[:en:create:functions:dbget|dbGet()]]'' -- Read data from date base * ''[[:en:create:functions:dbkeys|dbKeys()]]'' -- List key for data base * ''[[:en:create:functions:dbload|dbLoad()]]'' -- Call all entries with defined prefix from the contents database * ''[[:en:create:functions:dbretrieve|dbRetrieve()]]'' -- Get data from the data base (associative, nested array) * ''[[:en:create:functions:dbset|dbSet()]]'' -- Safe data in data base * ''[[:en:create:functions:dbstore|dbStore()]]'' -- Store data in the data base (associative, nested array) * ''[[:en:create:functions:dbtouch|dbTouch()]]'' -- Refresh time-stamp for data base entry * ''[[:en:create:functions:dbdelete]]'' -- Delete entries from the data base, selected by a prefix ===== Record Control ===== * ''[[:en:create:functions:dropvalue]]'' -- Delete a single variable from the current interview * ''[[:en:create:functions:dropupload]]'' -- Delete a file uploaded by the respondent * ''[[:en:create:functions:dropcase]]'' -- Mark the current interview for deletion * ''[[:en:create:functions:drophistory]]'' -- Delete the page history of the current interview ===== Analyses and Access Further Records ===== * ''[[:en:create:functions:statistic|statistic()]]'' -- Simple statistical analysis of all data * ''[[:en:create:functions:diagram|diagram()]]'' -- Simple diagram (e. g. frequency) for all analyzed data * ''[[:en:create:functions:panelrecords]]'' -- Access other records with the same person ID (SERIAL) ===== Analyses and Data Handling During an Interview ===== * ''[[:en:create:functions:answers|answers()]]'' -- Show a question including the respondent's answers * ''[[:en:create:functions:answersoption|answersOption()]]'' -- Adjust display of answers via ''answers()'' or ''answersPrint()'' * ''[[:en:create:functions:answersprint|answersPrint()]]'' -- Display all questions of a questionnaire segment including the respondent's answers * ''[[:en:create:functions:valuesum|valueSum()]]'' -- Compute sum over scale or variables * ''[[:en:create:functions:valuemean|valueMean()]]'' -- Compute mean over scale or variable * ''[[:en:create:functions:valuesd|valueSD()]]'' -- Compute standard deviation over scale or variable * ''[[:en:create:functions:valuevar|valueVar()]]'' -- Compute variance over scale or variable * ''[[:en:create:functions:valuelist]]'' -- Get multiple responses to multiple items in a question as array * ''[[:en:create:functions:convertdatetime|convertDateTime()]]'' -- Convert date/time texts (strings) and timestamps * ''[[:en:create:functions:calc]]'' -- Simple calcuations based on the current interview's responses * ''[[:en:create:functions:uploadastable|uploadAsTable()]]'' -- Get am Excel or CSV table uploaded by the respondent as array * ''[[:en:create:functions:uploadrawdata|uploadRawData()]]'' -- Get an uploaded file as binary string ===== Data Visualization ===== * ''[[:en:create:functions:diagram2|diagram2()]]'' -- Create diagram with set data * ''[[:en:create:functions:getqrcodeimage|getQRCodeImage()]]'' -- Integrate QR Code in the questionnaire * ''[[:en:create:functions:imagepng_embed|imagepng_embed()]]'' -- Include a PNG graphic without storing it to a file ===== Respondent and Mailing Management ===== * ''[[:en:create:functions:mailresume]]'' -- Resume an interview after a given delay * ''[[:en:create:functions:mailschedule]]'' -- Schedule to send a mailing to a single recipient * ''[[:en:create:functions:mailrevoke]]'' -- Cancel continuation mail(s) or a scheduled mailing * ''[[:en:create:functions:mailsend]]'' -- Send an email to an address that is not in the list of contacts * ''[[:en:create:functions:paneladd|panelAdd()]]'' -- Create a new address record * ''[[:en:create:functions:paneldata]]'' -- Get information from an existing address entry * ''[[:en:create:functions:panelupdate]]'' -- Update information on the address record * ''[[:en:create:functions:paneldelete]]'' -- Delete records from the address list * ''[[:en:create:functions:accesscount]]'' -- Limit trial to enter a code * ''[[:en:create:functions:setstatus]]'' -- Set the interview status and eventually trigger panel redirects ===== PHP's Own Functions ===== Furthermore, PHP itself provides numerous functions, some of which can be very helpful in the questionnaire. These functions are documented in the [[http://php.net/manual/en/index.php|PHP Manual]]. * Generally useful functions * [[http://php.net/manual/en/function.implode.php|implode]] - Join array elements into a string * [[http://php.net/manual/en/function.explode.php|explode]] - Split a string into an array * [[http://php.net/manual/en/function.preg-split.php|preg_split]] - Split a string into an array by means of a regular expression * Mathematical functions * [[http://php.net/manual/en/function.round.php|round]] - Round a decimal number * [[http://php.net/manual/en/function.ceil.php|ceil]] - Round a number up * [[http://php.net/manual/en/function.floor.php|floor]] - Round a number down * [[http://php.net/manual/en/function.abs.php|abs]] - Get the absolute value of a number * Array functions * [[http://php.net/manual/en/function.array-diff.php|array_diff]] - Subtract array elements * [[http://php.net/manual/en/function.array-fill.php|array_fill]] - Fill an array with (identical) values * [[http://php.net/manual/en/function.array-flip.php|array_flip]] - Exchange keys and values in an array * [[http://php.net/manual/en/function.array-intersect.php|array_intersect]] - Intersection of arrays * [[http://php.net/manual/en/function.array-keys.php|array_keys]] - Get the keys of an array * [[http://php.net/manual/en/function.array-key-exists.php|array_key_exists]] - Check whether a key exists in an array * [[http://php.net/manual/en/function.array-merge.php|array_merge]] - Merge arrays * [[http://php.net/manual/en/function.array-pop.php|array_pop]] - Remove and return the last element of an array * [[http://php.net/manual/en/function.array-push.php|array_push]] - Append element(s) to the end of an array * [[http://php.net/manual/en/function.array-rand.php|array_rand]] - Randomly select one or more entries of an array * [[http://php.net/manual/en/function.array-reverse.php|array_reverse]] - Return an array in reverse order * [[http://php.net/manual/en/function.array-search.php|array_search]] - Search an array for a value * [[http://php.net/manual/en/function.array-shift.php|array_shift]] - Remove and return the first element of an array * [[http://www.php.net/manual/en/function.array-slice.php| array_slice]] - Write a slice of an array into a new array * [[http://php.net/manual/en/function.array-sum.php|array_sum]] - Sum up the elements of an array * [[http://php.net/manual/en/function.array-unique.php|array_unique]] - Remove duplicate elements from an array * [[http://php.net/manual/en/function.array-unshift.php| array_unshift]] - Insert value(s) at the beginning of an array * [[http://php.net/manual/en/function.array-values.php|array_values]] - Convert an associative array into an indexed array * [[http://php.net/manual/en/function.arsort.php|arsort]] - Sort an array in descending order and keep the keys * [[http://php.net/manual/en/function.asort.php|asort]] - Sort an array in ascending order and keep the keys * [[http://php.net/manual/en/function.count.php|count]] - Return the number of elements in an array * [[http://php.net/manual/en/function.in-array.php|in_array]] - Check whether a value occurs in an array * [[http://php.net/manual/en/function.is-array.php|is_array]] - Check whether a variable is an array * [[http://php.net/manual/en/function.krsort.php|krsort]] - Sort an array by key in descending order * [[http://php.net/manual/en/function.ksort.php|ksort]] - Sort an array by key in ascending order * [[http://php.net/manual/en/function.list.php|list]] - Assign an array to several variables * [[http://php.net/manual/en/function.rsort.php|rsort]] - Sort an array in descending order * [[http://php.net/manual/en/function.shuffle.php|shuffle]] - Shuffle an array randomly * [[http://php.net/manual/en/function.sort.php|sort]] - Sort an array in ascending order * Date and time * [[http://php.net/manual/en/function.date.php|date]] - Format a timestamp as a date * [[http://php.net/manual/en/function.mktime.php|mktime]] - Convert a date/time into a timestamp * [[http://php.net/manual/en/function.microtime.php|microtime]] - Return a timestamp with microseconds * [[http://php.net/manual/en/function.time.php|time]] - Return a timestamp in seconds * String processing * [[http://php.net/manual/en/function.htmlentities.php|htmlentities]] - Convert all characters that have an HTML entity into that entity * [[http://php.net/manual/en/function.htmlspecialchars.php|htmlspecialchars]] - Convert HTML syntax characters (quotation marks, angle brackets) into HTML entities * [[http://php.net/manual/en/function.ltrim.php|ltrim]] - Remove whitespace from the beginning of a string * [[http://php.net/manual/en/function.number-format.php|number_format]] - Format a number with decimals and/or thousands separators * [[http://php.net/manual/en/function.rtrim.php|rtrim]] - Remove whitespace from the end of a string * [[http://php.net/manual/en/function.str-pad.php|str_pad]] - Pad a string to a certain length with a fill character * [[http://php.net/manual/en/function.str-replace.php|str_replace]] - Search and replace a substring * [[http://php.net/manual/en/function.strlen.php|strlen]] - Get the length of a string * [[http://php.net/manual/en/function.strtolower.php|strtolower]] - Convert a string to lowercase * [[http://php.net/manual/en/function.strtoupper.php|strtoupper]] - Convert a string to uppercase * [[http://php.net/manual/en/function.substr-count.php|substr_count]] - Count the occurrences of a substring * [[http://php.net/manual/en/function.substr.php|substr]] - Get a substring * [[http://php.net/manual/en/function.trim.php|trim]] - Remove whitespace from the beginning and end * The following functions are allowed as well: [[http://php.net/manual/en/function.nl2br.php|nl2br]], [[http://php.net/manual/en/function.str-repeat.php|str_repeat]], [[http://php.net/manual/en/function.str-shuffle.php|str_shuffle]], [[http://php.net/manual/en/function.str-word-count.php|str_word_count]], [[http://php.net/manual/en/function.strip-tags.php|strip_tags]], [[http://php.net/manual/en/function.stripos.php|stripos]], [[http://php.net/manual/en/function.stristr.php|stristr]], [[http://php.net/manual/en/function.strpos.php|strpos]], [[http://php.net/manual/en/function.strrev.php|strrev]], [[http://php.net/manual/en/function.strripos.php|strripos]], [[http://php.net/manual/en/function.strrpos.php|strrpos]], [[http://php.net/manual/en/function.strstr.php|strstr]], [[https://www.php.net/manual/en/function.strtr.php|strtr]], [[http://php.net/manual/en/function.substr-replace.php|substr_replace]], [[http://php.net/manual/en/function.wordwrap.php|wordwrap]]\\ * Drawing images (e.g., charts) * [[http://php.net/manual/en/function.imagecolorallocate.php|imagecolorallocate]] - Allocate a color for an image * [[http://php.net/manual/en/function.imagecreate.php|imagecreate]] - Create a new image * [[http://php.net/manual/en/function.imagecreatetruecolor.php|imagecreatetruecolor]] - Create a new true color image (16 million colors) * [[http://php.net/manual/en/function.imageellipse.php|imageellipse]] - Draw an ellipse or circle * [[http://php.net/manual/en/function.imagefill.php|imagefill]] - Fill an image (area) with a color * [[http://php.net/manual/en/function.imagefilledarc.php| imagefilledarc]] - Draw a filled circle sector * [[http://php.net/manual/en/function.imagefilledellipse.php|imagefilledellipse]] - Draw a filled ellipse or circle * [[http://php.net/manual/en/function.imagefilledpolygon.php|imagefilledpolygon]] - Draw a filled polygon * [[http://php.net/manual/en/function.imagefilledrectangle.php|imagefilledrectangle]] - Draw a filled rectangle * [[http://php.net/manual/en/function.imagefilltoborder.php|imagefilltoborder]] - Fill an image with a color up to a border line * [[http://php.net/manual/en/function.imageline.php|imageline]] - Draw a straight line * [[http://php.net/manual/en/function.imagepolygon.php|imagepolygon]] - Draw a polygon * [[http://php.net/manual/en/function.imagerectangle.php|imagerectangle]] - Draw a rectangle * [[http://php.net/manual/en/function.imagesetbrush.php|imagesetbrush]] - Set the brush * [[http://php.net/manual/en/function.imagesetpixel.php|imagesetpixel]] - Draw a pixel * [[http://php.net/manual/en/function.imagesetstyle.php|imagesetstyle]] - Set the style for lines * [[http://php.net/manual/en/function.imagesetthickness.php|imagesetthickness]] - Set the width of lines * [[http://php.net/manual/en/function.imagestring.php|imagestring]] - Draw text (horizontally) * The following functions are allowed as well: [[http://php.net/manual/en/function.image-type-to-extension.php|image_type_to_extension]], [[http://php.net/manual/en/function.image-type-to-mime-type.php|image_type_to_mime_type]], [[http://php.net/manual/en/function.imagearc.php|imagearc]], [[http://php.net/manual/en/function.imagechar.php|imagechar]], [[http://php.net/manual/en/function.imagecharup.php|imagecharup]], [[http://php.net/manual/en/function.imagecolorallocatealpha.php|imagecolorallocatealpha]], [[http://php.net/manual/en/function.imagecolorat.php|imagecolorat]], [[http://php.net/manual/en/function.imagecolorclosest.php|imagecolorclosest]], [[http://php.net/manual/en/function.imagecolorclosestalpha.php|imagecolorclosestalpha]], [[http://php.net/manual/en/function.imagecolorclosesthwb.php|imagecolorclosesthwb]], [[http://php.net/manual/en/function.imagecolordeallocate.php|imagecolordeallocate]], [[http://php.net/manual/en/function.imagecolorexact.php|imagecolorexact]], [[http://php.net/manual/en/function.imagecolorresolve.php|imagecolorresolve]], [[http://php.net/manual/en/function.imagecolorset.php|imagecolorset]], [[http://php.net/manual/en/function.imagecopy.php|imagecopy]], [[http://php.net/manual/en/function.imagecopymerge.php|imagecopymerge]], [[http://php.net/manual/en/function.imagecopymergegray.php|imagecopymergegray]], [[http://php.net/manual/en/function.imagecopyresampled.php|imagecopyresampled]], [[http://php.net/manual/en/function.imagecopyresized.php| imagecopyresized]], [[http://php.net/manual/en/function.imagedashedline.php| imagedashedline]], [[http://php.net/manual/en/function.imagedestroy.php|imagedestroy]], [[http://php.net/manual/en/function.imagefilter.php|imagefilter]], [[http://php.net/manual/en/function.imagefontheight.php|imagefontheight]], [[http://php.net/manual/en/function.imagefontwidth.php| imagefontwidth]], [[http://php.net/manual/en/function.imageinterlace.php|imageinterlace]], [[http://php.net/manual/en/function.imagepalettecopy.php|imagepalettecopy]], [[http://php.net/manual/en/function.imagerotate.php|imagerotate]], [[http://php.net/manual/en/function.imagesavealpha.php|imagesavealpha]], [[http://php.net/manual/en/function.imagesettile.php|imagesettile]], [[http://php.net/manual/en/function.imagestringup.php|imagestringup]], [[http://php.net/manual/en/function.imagesx.php|imagesx]], [[http://php.net/manual/en/function.imagesy.php|imagesy]], [[http://php.net/manual/en/function.imagetruecolortopalette.php|imagetruecolortopalette]] * The following functions can be used in a slightly modified form: [[http://php.net/manual/en/function.imagepng.php|imagepng]], [[http://php.net/manual/en/function.imagettftext.php|imagettftext]], [[http://php.net/manual/en/function.imagecreatefrompng.php|imagecreatefrompng]] * Miscellaneous * [[http://php.net/manual/en/function.intval.php|intval]] - Convert a variable into an integer value * [[http://php.net/manual/en/function.md5.php|md5]] - Calculate the MD5 hash of a value ===== Restricted Functions ===== Some functions pose a security risk or do not work as expected in the context of the questionnaire. Alternatives are listed below. If you need additional features, please let SoSci Survey know. * ''echo'' * ''[[:en:create:functions:html]]'' * ''[[:en:create:functions:text]]'' * ''mysqld_query()'' * ''[[:en:create:databank]]'' * ''[[:en:create:functions:datasetretrieve|datasetRetrieve()]]'' ===== Detailed Functions ===== Reference-syntax for each function, e.g.: ''void **set**(mixed //Value//, [string //Memory//])'' This reference-syntax describes the argumentation of functions and it's data type. * At the beginning return function of data type is shown //void//, meaning: function is acting but does not return values. * Arguments listed in braces. Optional arguments in angled braces. Function ''set()'' has o have at least one argument //Value// than it is allowed to use another (second) argument //Memory// . * Type of data stands in front of argument: * //mixed// means different types of data are allowed * //int// is a number * //string// text with inverted comma * //array// List of values ([[array|Arrays]])