StructKeyArray

Returns an array of the keys in the specified ColdFusion structure.

See also StructClear, StructDelete, StructFind, StructInsert, StructIsEmpty, StructKeyList, StructKeyExists, StructCount, and StructUpdate.

Syntax

StructKeyArray(structure)
structure

Structure from which the list of keys is to be extracted.

Usage

The array of keys returned by StructKeyArray is not in any particular order. In order to sort keys alphabetically or numerically, use ArraySort.

Note that this function throws an exception if structure does not exist.

Example

<!--- This example shows how to use the StructKeyArray
      function to copy the keys from a specified structure to an array.
      It also uses the StructNew function to create the structure
      and fills its fields with the information the user types 
      into the corresponding form fields. --->
<HTML>
<HEAD>
<TITLE>StructKeyArray Function</TITLE>
</HEAD>

<basefont face="Arial, Helvetica" size=2>

<body  bgcolor="#FFFFD5">

<H3>StructKeyArray Example</H3>
<H3>Extracting the Keys from the Employee Structure</H3>      

<!---------------------------------------------------------------- 
This section of code creates the new structure and checks to 
see if the submit button has been pressed.  If it has been
pressed, the code defines fields in the employee structure
with what the user has entered from the form. 
------------------------------------------------------------------->

<CFSET employee=StructNew()>  
<CFIF Isdefined("Form.Submit")>
    <CFIF Form.Submit is "OK">
        <CFSET employee.firstname = FORM.firstname>
        <CFSET employee.lastname = FORM.lastname>
        <CFSET employee.email = FORM.email>
        <CFSET employee.phone = FORM.phone>
        <CFSET employee.company = FORM.company> 
    <CFELSEIf Form.Submit is "Clear">
        <CFSET rc=StructClear(employee)>
    </CFIF>
</CFIF>      
      
<P>
This example uses the StructNew function to create a structure 
that supplies employee information.  The data structure is called 
"employee" and its fields are filled with the contents of the 
following form. After you have entered employee information into the 
structure, the example uses the <b>StructKeyArray</b> function to copy 
all of the keys from the structure into an array.
</P>

<hr size="2" color="#0000A0">

<FORM ACTION="structkeyarray.cfm" METHOD="post">
<table cellspacing="2" cellpadding="2" border="0">
    <tr>
    <td>First Name:</td>
    <td><INPUT NAME="firstname" TYPE="text" VALUE="" hspace="30" 
maxlength="30"></td>
    </tr>
    <tr>
    <td>Last Name:</td>
    <td><INPUT NAME="lastname" TYPE="text" VALUE="" hspace="30" 
maxlength="30"></td>
    </tr>
    <tr>
    <td>EMail</td>
    <td><INPUT NAME="email" TYPE="text" VALUE="" hspace="30" 
maxlength="30"></td>
    </tr>
    <tr>
    <td>Phone:</td>
    <td><INPUT NAME="phone" TYPE="text" VALUE="" hspace="20" 
maxlength="20"></td>
    </tr>
    <tr>
    <td>Company:</td>
    <td><INPUT NAME="company" TYPE="text" VALUE="" hspace="30" 
maxlength="30"></td>
    </tr>
    <tr>
    <td><INPUT TYPE="submit" NAME="submit" VALUE="OK"></td>
    <td><b>After you submit the FORM, scroll down to see the array.</b>
    </td>
    </tr>
</table>
</FORM>

<CFIF NOT StructISEmpty(employee)> 
    <hr size="2" color="#0000A0">
    <CFSET keysToStruct = StructKeyArray(employee)>
    <CFLOOP index="i" from="1" to="#ArrayLen(keysToStruct)#">
        <P><CFOUTPUT>Key#i# is #keysToStruct[i]#</CFOUTPUT></P>
        <P><CFOUTPUT>Value#i# is #employee[keysToStruct[i]]#</CFOUTPUT>
        </P>
    </CFLOOP>
</CFIF>
</BODY>
</HTML>


1