Attribute
- CFML Reference User Guide
- ColdFusion functions
- ColdFusion functions by category
- Functions a-b
- Abs
- ACos
- AddSOAPRequestHeader
- AddSOAPResponseHeader
- AjaxLink
- AjaxOnLoad
- ApplicationStop
- ArrayAppend
- ArrayAvg
- ArrayClear
- ArrayContains
- ArrayContainsNoCase
- ArrayDelete
- ArrayDeleteAt
- ArrayDeleteNoCase
- ArrayEach
- ArrayFilter
- ArrayFind
- ArrayFindAll
- ArrayFindAllNoCase
- ArrayFindNoCase
- ArrayInsertAt
- ArrayIsDefined
- ArrayIsEmpty
- ArrayLen
- ArrayMap
- ArrayMax
- ArrayMin
- ArrayNew
- ArrayPrepend
- ArrayReduce
- ArrayResize
- ArraySet
- ArraySetMetadata
- ArraySlice
- ArraySort
- ArraySum
- ArraySwap
- ArrayToList
- Asc
- ASin
- Atn
- AuthenticatedContext
- AuthenticatedUser
- BinaryDecode
- BinaryEncode
- BitAnd
- BitMaskClear
- BitMaskRead
- BitMaskSet
- BitNot
- BitOr
- BitSHLN
- BitSHRN
- BitXor
- BooleanFormat
- Abs
- Functions-c-d
- CacheGet
- CacheGetAllIds
- CacheGetMetadata
- CacheGetProperties
- CacheGetSession
- CacheIdExists
- CachePut
- CacheRegionExists
- CacheRegionNew
- CacheRegionRemove
- CacheRemove
- CacheRemoveAll
- CacheSetProperties
- CallStackDump
- CallStackGet
- CanDeSerialize
- Canonicalize
- CanSerialize
- Ceiling
- CharsetDecode
- CharsetEncode
- Chr
- CJustify
- Compare
- CompareNoCase
- Cos
- CreateDate
- CreateDateTime
- CreateObject
- CreateObject: .NET object
- CreateObject: COM object
- CreateObject: component object
- CreateObject: CORBA object
- CreateObject: Java or EJB object
- CreateObject: web service object
- CreateODBCDate
- CreateODBCDateTime
- CreateODBCTime
- CreateSignedJWT
- CreateEncryptedJWT
- CreateTime
- CreateTimeSpan
- CreateUUID
- CSRFGenerateToken
- CSRFVerifyToken
- DateAdd
- DateCompare
- DateConvert
- DateDiff
- DateFormat
- DatePart
- DateTimeFormat
- Day
- DayOfWeek
- DayOfWeekAsString
- DayOfYear
- DaysInMonth
- DaysInYear
- DE
- DecimalFormat
- DecodeForHTML
- DecodeFromURL
- DecrementValue
- Decrypt
- DecryptBinary
- DeleteClientVariable
- Deserialize
- DeserializeJSON
- DeserializeXML
- DirectoryCopy
- DirectoryCreate
- DirectoryDelete
- DirectoryExists
- DirectoryList
- DirectoryRename
- DollarFormat
- DotNetToCFType
- Duplicate
- Functions-e-g
- EncodeForCSS
- EncodeForDN
- EncodeForHTML
- EncodeForHTMLAttribute
- EncodeForJavaScript
- EncodeForLDAP
- EncodeForURL
- EncodeForXML
- EncodeForXMLAttribute
- EncodeForXpath
- Encrypt
- EncryptBinary
- EntityDelete
- EntityLoad
- EntityLoadByExample
- EntityLoadByPK
- EntityMerge
- EntityNew
- EntityReload
- EntitySave
- EntityToQuery
- Evaluate
- Exp
- ExpandPath
- FileClose
- FileCopy
- FileDelete
- FileExists
- FileGetMimeType
- FileIsEOF
- FileMove
- FileOpen
- FileRead
- FileReadBinary
- FileReadLine
- FileSeek
- FileSetAccessMode
- FileSetAttribute
- FileSetLastModified
- FileSkipBytes
- FileUpload
- FileUploadAll
- FileWrite
- FileWriteLine
- Find
- FindNoCase
- FindOneOf
- FirstDayOfMonth
- Fix
- Floor
- FormatBaseN
- GeneratePBKDFKey
- GenerateSecretKey
- GetApplicationMetadata
- GetAuthUser
- GetBaseTagData
- GetBaseTagList
- GetBaseTemplatePath
- GetClientVariablesList
- GetComponentMetaData
- GetContextRoot
- GetCPUUsage
- GetCurrentTemplatePath
- GetDirectoryFromPath
- GetEncoding
- GetException
- GetFileFromPath
- GetFileInfo
- GetFreeSpace
- GetFunctionCalledName
- GetFunctionList
- GetGatewayHelper
- GetHttpRequestData
- GetHttpTimeString
- GetK2ServerDocCount
- GetK2ServerDocCountLimit
- GetLocale
- GetLocaleDisplayName
- GetLocalHostIP
- GetMetaData
- GetMetricData
- GetPageContext
- GetPrinterInfo
- GetPrinterList
- GetProfileSections
- GetProfileString
- GetReadableImageFormats
- GetSafeHTML
- GetSAMLAuthRequest
- GetSAMLLogoutRequest
- GenerateSAMLSPMetadata
- GetSOAPRequest
- GetSOAPRequestHeader
- GetSOAPResponse
- GetSOAPResponseHeader
- GetSystemFreeMemory
- GetSystemTotalMemory
- GetTempDirectory
- GetTempFile
- GetTemplatePath
- GetTickCount
- GetTimeZoneInfo
- GetToken
- GetTotalSpace
- GetUserRoles
- GetVFSMetaData
- GetWriteableImageFormats
- Functions-h-im
- Hash
- HMac
- Hour
- HQLMethods
- HTMLCodeFormat
- HTMLEditFormat
- IIf
- ImageAddBorder
- ImageBlur
- ImageClearRect
- ImageCopy
- ImageCreateCaptcha
- ImageCrop
- ImageDrawArc
- ImageDrawBeveledRect
- ImageDrawCubicCurve
- ImageDrawLine
- ImageDrawLines
- ImageDrawOval
- ImageDrawPoint
- ImageDrawQuadraticCurve
- ImageDrawRect
- ImageDrawRoundRect
- ImageDrawText
- ImageFlip
- ImageGetBlob
- ImageGetBufferedImage
- ImageGetEXIFMetadata
- ImageGetEXIFTag
- ImageGetHeight
- ImageGetIPTCMetadata
- ImageGetIPTCTag
- ImageGetMetadata
- ImageGetWidth
- ImageGrayscale
- ImageInfo
- ImageMakeColorTransparent
- ImageMakeTranslucent
- ImageNegative
- ImageNew
- ImageOverlay
- ImagePaste
- ImageRead
- ImageReadBase64
- ImageResize
- ImageRotate
- ImageRotateDrawingAxis
- ImageScaleToFit
- ImageSetAntialiasing
- ImageSetBackgroundColor
- ImageSetDrawingColor
- ImageSetDrawingStroke
- ImageSetDrawingTransparency
- ImageSharpen
- ImageShear
- ImageShearDrawingAxis
- ImageTranslate
- ImageTranslateDrawingAxis
- ImageWrite
- ImageWriteBase64
- ImageXORDrawingMode
- Functions-in-k
- IncrementValue
- InputBaseN
- Insert
- Int
- InvalidateOauthAccesstoken
- Invoke
- InitSAMLAuthRequest
- InitSAMLLogoutRequest
- InvokeCFClientFunction
- IsArray
- IsAuthenticated
- IsAuthorized
- IsBinary
- IsBoolean
- IsClosure
- IsCustomFunction
- IsDate
- IsDateObject
- IsDDX
- IsDebugMode
- IsDefined
- IsImage
- IsImageFile
- IsInstanceOf
- IsIPv6
- IsJSON
- IsK2ServerABroker
- IsK2ServerDocCountExceeded
- IsK2ServerOnline
- IsLeapYear
- IsLocalHost
- IsNull
- IsNumeric
- IsNumericDate
- IsObject
- isOnline
- IsPDFArchive
- IsPDFFile
- IsPDFObject
- IsProtected
- IsQuery
- isSamlLogoutResponse
- isSafeHTML
- IsSimpleValue
- IsSOAPRequest
- IsSpreadsheetFile
- IsSpreadsheetObject
- IsStruct
- IsUserInAnyRole
- IsUserInRole
- IsUserLoggedIn
- IsValid
- IsValidOauthAccesstoken
- IsWDDX
- IsXML
- IsXmlAttribute
- IsXmlDoc
- IsXmlElem
- IsXmlNode
- IsXmlRoot
- JavaCast
- JSStringFormat
- Functions-l
- LCase
- Left
- Len
- ListAppend
- ListChangeDelims
- ListContains
- ListContainsNoCase
- ListDeleteAt
- ListEach
- ListFilter
- ListFind
- ListFindNoCase
- ListFirst
- ListGetAt
- ListInsertAt
- ListLast
- ListLen
- ListMap
- ListPrepend
- ListQualify
- ListReduce
- ListRemoveDuplicates
- ListRest
- ListSetAt
- ListSort
- ListToArray
- ListValueCount
- ListValueCountNoCase
- LJustify
- Location
- Log
- Log10
- LSCurrencyFormat
- LSDateFormat
- LSDateTimeFormat
- LSEuroCurrencyFormat
- LSIsCurrency
- LSIsDate
- LSIsNumeric
- LSNumberFormat
- LSParseCurrency
- LSParseDateTime
- LSParseEuroCurrency
- LSParseNumber
- LSTimeFormat
- LTrim
- Functions-m-r
- Max
- Mid
- Min
- Minute
- Month
- MonthAsString
- Now
- NumberFormat
- ObjectEquals
- ObjectLoad
- ObjectSave
- OnWSAuthenticate
- ORMClearSession
- ORMCloseAllSessions
- ORMCloseSession
- ORMEvictCollection
- ORMEvictEntity
- ORMEvictQueries
- ORMExecuteQuery
- ORMFlush
- ORMFlushall
- ORMGetSession
- ORMGetSessionFactory
- ORMIndex
- ORMIndexPurge
- ORMReload
- ORMSearch
- ORMSearchOffline
- ParagraphFormat
- ParameterExists
- ParseDateTime
- Pi
- PrecisionEvaluate
- ProcessSAMLResponse
- ProcessSAMLLogoutRequest
- Quarter
- PreserveSingleQuotes
- QueryAddColumn
- QueryAddRow
- QueryConvertForGrid
- QueryExecute
- QueryFilter
- QueryGetResult
- QueryGetRow
- QueryKeyExists
- QueryMap
- QueryNew
- QueryReduce
- QuerySetCell
- QuotedValueList
- QueryEach
- Rand
- Randomize
- RandRange
- ReEscape
- REFind
- REFindNoCase
- ReleaseComObject
- REMatch
- REMatchNoCase
- RemoveCachedQuery
- RemoveChars
- RepeatString
- Replace
- ReplaceList
- ReplaceNoCase
- REReplace
- REReplaceNoCase
- RestDeleteApplication
- RestSetResponse
- RestInitApplication
- Reverse
- Right
- RJustify
- Round
- RTrim
- Functions-s
- Second
- SendGatewayMessage
- SendSAMLLogoutResponse
- Serialize
- SerializeJSON
- SerializeXML
- SessionInvalidate
- SessionRotate
- SessionGetMetaData
- SessionInvalidate
- SessionRotate
- SetDay
- SetEncoding
- SetHour
- SetLocale
- SetMonth
- SetProfileString
- SetVariable
- SetYear
- Sgn
- Sin
- Sleep
- SpanExcluding
- SpanIncluding
- SpreadsheetAddAutoFilter
- SpreadsheetAddColumn
- SpreadsheetAddFreezePane
- SpreadsheetAddImage
- SpreadsheetAddInfo
- SpreadsheetAddPageBreaks
- SpreadsheetAddRow
- SpreadsheetAddRows
- SpreadsheetAddSplitPane
- SpreadsheetCreateSheet
- SpreadsheetDeleteColumn
- SpreadsheetDeleteColumns
- SpreadsheetDeleteRow
- SpreadsheetDeleteRows
- SpreadsheetFormatCell
- SpreadsheetFormatColumn
- SpreadsheetFormatCellRange
- SpreadsheetFormatColumn
- SpreadsheetFormatColumns
- SpreadsheetFormatRow
- SpreadsheetFormatRows
- SpreadsheetGetCellComment
- SpreadsheetGetCellFormula
- SpreadsheetGetCellValue
- SpreadsheetGetColumnCount
- SpreadsheetInfo
- SpreadsheetMergeCells
- SpreadsheetNew
- SpreadsheetRead
- SpreadsheetReadBinary
- SpreadsheetRemoveSheet
- SpreadsheetSetActiveSheet
- SpreadsheetSetActiveSheetNumber
- SpreadsheetSetCellComment
- SpreadsheetSetCellFormula
- SpreadsheetSetCellValue
- SpreadsheetSetColumnWidth
- SpreadsheetSetFooter
- SpreadsheetSetHeader
- SpreadsheetSetRowHeight
- SpreadsheetShiftColumns
- SpreadsheetShiftRows
- SpreadsheetWrite
- Sqr
- StripCR
- StructAppend
- StructClear
- StructCopy
- StructCount
- StructDelete
- StructEach
- StructFilter
- StructFind
- StructFindKey
- StructFindValue
- StructGet
- StructGetMetadata
- StructInsert
- StructIsEmpty
- StructKeyArray
- StructKeyExists
- StructKeyList
- StructMap
- StructNew
- StructReduce
- StructSetMetadata
- StructSort
- StructToSorted
- StructUpdate
- StoreSetMetadata
- StoreGetACL
- StoreGetMetadata
- StoreAddACL
- StoreSetACL
- Functions-t-z
- Tan
- ThreadJoin
- ThreadTerminate
- Throw
- TimeFormat
- ToBase64
- ToBinary
- ToScript
- ToString
- Trace
- Transactionandconcurrency
- TransactionCommit
- TransactionRollback
- TransactionSetSavePoint
- Trim
- UCase
- URLDecode
- URLEncodedFormat
- URLSessionFormat
- Val
- ValueList
- VerifyClient
- Week
- Wrap
- WriteDump
- WriteLog
- WriteOutput
- WSGetAllChannels
- WSGetSubscribers
- WSPublish
- WSSendMessage
- XmlChildPos
- XmlElemNew
- XmlFormat
- XmlGetNodeType
- XmlNew
- XmlParse
- XmlSearch
- XmlTransform
- XmlValidate
- Year
- YesNoFormat
- ColdFusion Tags
- ColdFusion tag summary
- ColdFusion tags by category
- Application framework tags
- Communications tags
- Database manipulation tags
- Data output tags
- Debugging tags
- Exception handling tags
- Extensibility tags
- File management tags
- Flow-control tags
- Forms tags
- Internet Protocol tags
- Page processing tags
- Security tags
- Variable manipulation tags
- Other tags
- Tags a-b
- Tags c
- Tags f
- cffeed
- cffile
- cffile action = "append"
- cffile action = "copy"
- cffile action = "delete"
- cffile action = "move"
- cffile action = "read"
- cffile action = "readBinary"
- cffile action = "rename"
- cffile action = "upload"
- cffile action = "uploadAll"
- cffile action = "write"
- cffileupload
- cffinally
- cfflush
- cfform
- cfformgroup
- cfformitem
- cfftp
- cfftp: Connection: file and directory operations
- cfftp: Opening and closing FTP server connections
- cfftp : Opening and closing secure FTP server connections
- cfftp action = "listDir"
- cffunction
- Tags g-h
- Tags i
- Tags j-l
- cfjava
- cflayout
- cflayoutarea
- cfldap
- cflocation
- cflock
- cflog
- cflogin
- cfloginuser
- cflogout
- cfloop
- cfloop : conditional loop
- cfloop : index loop
- cfloop : looping over a COM collection or structure
- cfloop : looping over a date or time range
- cfloop : looping over a list, a file, or an array
- cfloop : looping over a query
- Tags m-o
- cfmail
- cfmailparam
- cfmailpart
- cfmap
- cfmapitem
- cfmediaplayer
- cfmenu
- cfmenuitem
- cfmessagebox
- cfmodule
- cfNTauthenticate
- cfoauth
- cfobject
- cfobject: .NET object
- cfobject: COM object
- cfobject: component object
- cfobject: CORBA object
- cfobject: Java or EJB object
- cfobject: web service object
- cfobjectcache
- cfoutput
- Tags p-q
- Tags r-s
- Tags t
- Tags u-z
- CFML Reference
- Reserved words and variables
- Ajax JavaScript functions
- Ajax JavaScript functions
- Function summary Ajax
- ColdFusion.Ajax.submitForm
- ColdFusion.Autosuggest.getAutosuggestObject
- ColdFusion.Layout.enableSourceBind
- ColdFusion.MessageBox.getMessageBoxObject
- ColdFusion.ProgressBar.getProgressBarObject
- ColdFusion.MessageBox.isMessageBoxDefined
- JavaScriptFunctionsinColdFusion9Update1
- ColdFusion ActionScript functions
- ColdFusion mobile functions
- Application.cfc reference
- Script functions implemented as CFCs
- ColdFusion Flash Form style reference
- Styles valid for all controls
- Styles for cfform
- Styles for cfformgroup with horizontal or vertical type attributes
- Styles for box-style cfformgroup elements
- Styles for cfformgroup with accordion type attribute
- Styles for cfformgroup with tabnavigator type attribute
- Styles for cfformitem with hrule or vrule type attributes
- Styles for cfinput with radio, checkbox, button, image, or submit type attributes
- Styles for cftextarea tag and cfinput with text, password, or hidden type attributes
- Styles for cfselect with size attribute value of 1
- Styles for cfselect with size attribute value greater than 1
- Styles for cfcalendar tag and cfinput with dateField type attribute
- Styles for the cfgrid tag
- Styles for the cftree tag
- ColdFusion Flash Form Style Reference
- ColdFusion event gateway reference
- ColdFusion Event Gateway reference
- addEvent
- CFEvent
- CFEventclass
- Constructor
- Gateway development interfaces and classes
- getStatus
- setCFCPath
- setCFCMethod
- getOriginatorID
- getLogger
- getBuddyList
- getBuddyInfo
- IM gateway message sending commands
- IM Gateway GatewayHelper class methods
- onIncomingMessage
- onIMServerMessage
- onBuddyStatus
- onAddBuddyResponse
- onAddBuddyRequest
- IM Gateway CFC incoming message methods
- IM gateway methods and commands
- CFML CFEvent structure
- warn
- info
- setOriginatorID
- data command
- submit Multi command
- submit command
- setGatewayType
- setGatewayID
- setData
- setCFCListeners
- outgoingMessage
- getStatusTimeStamp
- numberOfMessagesReceived
- numberOfMessagesSent
- removeBuddy
- removeDeny
- removePermit
- setNickName
- setPermitMode
- setStatus
- SMS Gateway CFEvent structure and commands
- SMS Gateway incoming message CFEvent structure
- getStatusAsString
- getProtocolName
- getPermitMode
- getPermitList
- getNickName
- getName
- getDenyList
- getCustomAwayMessage
- getQueueSize
- getMaxQueueSize
- getHelper
- getGatewayType
- getGatewayServices
- getGatewayID_1
- getGatewayID
- getData
- getCFCTimeout
- setCFCTimeout
- getCFCPath
- getCFCMethod
- GatewayServices class
- Gateway interface
- GatewayHelper interface
- addPermit
- addDeny
- addBuddy
- error
- debug
- Logger class
- stop
- start
- CFML event gateway SendGatewayMessage data parameter
- restart
- fatal
- SMS gateway message sending commands
- ColdFusion C++ CFX Reference
- ColdFusion Java CFX reference
- WDDX JavaScript Objects
- Cloud services
- ColdFusion and GCP Storage
- ColdFusion and GCP Firestore
- ColdFusion and GCP PubSub
- ColdFusion and Amazon S3
- ColdFusion and DynamoDB
- ColdFusion and Amazon SQS
- ColdFusion and Amazon SNS
- ColdFusion and MongoDB
- ColdFusion and Azure Blob
- ColdFusion and Azure Service Bus
- Multi-cloud storage services
- Multi-cloud RDS databases
- ColdFusion and Azure Cosmos DB
Description
Looping over a list steps through elements contained in any of these entities:
- A variable
- A value that is returned from an expression
- An array
- A file Looping over a file does not open the entire file in memory.
Syntax
<cfloop index = "index name" item = "item name" array = "array" characters = "number of characters" delimiters = "item delimiter" file = "absolute path and filename" charset = "a charset to use when reading the file" list = "list items" ... </cfloop>
See also
History
ColdFusion (2018 release) Update 2: The script variant of cfloop supports iterating over an array, list, and struct.
ColdFusion 8: Added the characters, file, and array attributes.
cfloop - Array
|
Required/Optional |
Description |
array |
Required |
The array object. |
index |
Optional. In earlier versions of ColdFusion, this attribute was required. In ColdFusion (2016 release), this attribute is optional. Either item or index is required. |
The current value of the array. |
item |
Optional |
The current element of the array. In ColdFusion (2016 release), you need to use either item or index; or use both the attributes together. |
The following code sample throws an exception, since neither item nor index was used:
<cfset myArray = ["John", "Paul", "George", "Ringo"] > <cfloop array="#myArray#"> <cfoutput>#x# <br/> </cfoutput> </cfloop>
Use the attribute index as shown below:
<cfset myArray = ["John", "Paul", "George", "Ringo"] > <cfloop array="#myArray#" index="idx"> <cfoutput>#idx# <br/> </cfoutput> </cfloop>
Output
John Paul George Ringo
Use the attribute item, as shown below:
<cfset myArray = ["John", "Paul", "George", "Ringo"] > <cfloop array="#myArray#" item="itm"> <cfoutput>#itm# <br/> </cfoutput> </cfloop>
Output
John Paul George Ringo
Use both item and index attributes together, as shown below:
<cfset myArray = ["John", "Paul", "George", "Ringo"] > <cfloop array="#myArray#" item="Beatles" index="name"> <cfoutput>#name# : #Beatles# <br/> </cfoutput> </cfloop>
Output
1 : John 2 : Paul 3 : George 4 : Ringo
Looping over multi-dimensional arrays
A multi-dimensional array is an array of arrays rather than an array of single values.
To read an element from a two-dimensional array, you must first identify the index of the row and then identify the index of the column. For example, the song "Surfer Girl" is in row 3, column 1, so it is identified as aBeachBoysAlbums[3][1].
To loop through a two-dimensional array, you must nest one loop inside of another.
<cfset aBeachBoysAlbums = ArrayNew(2)> <!---Build first album array, Surfin' Safari---> <cfset aBeachBoysAlbums[1][1] = "Surfin' Safari"> <cfset aBeachBoysAlbums[1][2] = "County Fair"> <cfset aBeachBoysAlbums[1][3] = "Ten Little Indians"> <!---Build second album array, Surfin' USA---> <cfset aBeachBoysAlbums[2][1] = "Surfin' USA"> <cfset aBeachBoysAlbums[2][2] = "Farmer's Daughter"> <cfset aBeachBoysAlbums[2][3] = "Miserlou"> <!---Build third album array, Surfer Girl---> <cfset aBeachBoysAlbums[3][1] = "Surfer Girl"> <cfset aBeachBoysAlbums[3][2] = "Catch a Wave"> <cfset aBeachBoysAlbums[3][3] = "The Surfer Moon"> <!---<cfdump var="#aBeachBoysAlbums#" >---> <!--- loop ---> <cfloop from="1" to="#ArrayLen(aBeachBoysAlbums)#" index="i"> <cfoutput> <cfloop from="1" to="#ArrayLen(aBeachBoysAlbums[i])#" index="j"> Album: #i# Song #j#: #aBeachBoysAlbums[i][j]#</br> </cfloop> </cfoutput> </cfloop>
Output
Album: 1 Song 1: Surfin' Safari
Album: 1 Song 2: County Fair
Album: 1 Song 3: Ten Little Indians
Album: 2 Song 1: Surfin' USA
Album: 2 Song 2: Farmer's Daughter
Album: 2 Song 3: Miserlou
Album: 3 Song 1: Surfer Girl
Album: 3 Song 2: Catch a Wave
Album: 3 Song 3: The Surfer Moon
Alternatively, you can use an array of structures and loop through the array to extract the key-value pairs.
For example,
<cfscript> data = [ {code:"USA", count:324459463}, {code:"UK", count:66181585}, {code:"CAN", count:36624199}, {code:"FRA", count:64979548}, {code:"NED", count:17035938}, {code:"GER", count:82114224} ]; </cfscript> <cfloop array="#data#" index="i"> <cfoutput> The population of #i.code#: #i.count#<br> </cfoutput> </cfloop>
Output
The population of USA: 324459463
The population of UK: 66181585
The population of CAN: 36624199
The population of FRA: 64979548
The population of NED: 17035938
The population of GER: 82114224
cfloop as script
<cfscript> myArray = ["John", "Paul", "George", "Ringo"]; cfloop(array=myArray, index="idx"){ writeOutput(#idx# & "<br/>"); } </cfscript>
Output
John
Paul
George
Ringo
cfloop - List
Attribute |
Required/Optional |
Description |
list |
Required |
List of elements. |
index |
Optional |
The current value of the list. |
item |
Optional |
The current element of the list. In ColdFusion (2016 release), you need to use either item or index; or use both the attributes together. |
Delimiters |
Optional |
Characters that separate list items. |
The following code sample throws an exception, since neither item nor index was used:
<cfset myList="John,Paul|George|Ringo"/> <cfloop list="#myList#" delimiters=",|"> <cfoutput> #name# </cfoutput> </cfloop>
Use the attribute index as shown below. The sample below does not use delimiters attribute.
<cfset myList="John,Paul,George,Ringo"/> <!---Loop through the list with attribute index ---> <cfloop list="#myList#" index="name"> <cfoutput> #name# </cfoutput> </cfloop>
Output
John Paul George Ringo
Use the attribute item as shown below. The sample below does not use delimiters attribute.
<cfset myList="John,Paul,George,Ringo"/> <!---Loop through the list with attribute item ---> <cfloop list="#myList#" item="Beatles"> <cfoutput> #Beatles# </cfoutput> </cfloop>
Output
John Paul George Ringo
You can use both item and index together, as shown below:
<cfset beatles="John,Paul,George,Ringo"/> <!---Loop through the list with attributes item and index ---> <cfloop list="#beatles#" item="name" index="i"> <cfoutput> #i#:#name# </cfoutput> </cfloop>
Using delimiters in cfloop - list
Delimiters are characters that separate list items. For example,
- Item1, item2, item3, item4 (comma-separated list)
- Item1, item2 | item3 | item4 (comma and pipe-separated list)
In the code samples below:
<cfset myList="John,Paul|George|Ringo"/> <!---Loop through the list with attributes index and delimiters ---> <cfloop list="#myList#" index="name" delimiters="|"> <cfoutput> #name# </cfoutput> </cfloop>
Output
John, Paul George Ringo
<cfset myList="John,Paul|George|Ringo"/> <!---Loop through the list with attributes index and delimiters ---> <cfloop list="#myList#" index="name" delimiters=",|"> <cfoutput> #name# </cfoutput> </cfloop>
Output
John Paul George Ringo
cfloop as script
<cfscript> myList="1,2,3,4" cfloop(list=myList, index="i", item="j") { writeOutput("index:" & i) writeOutput("item:" & j & "") } </cfscript>
Output
index:1item:1
index:2item:2
index:3item:3
index:4item:4
cfloop - File
Attribute |
Required/Optional |
Description |
file |
Required |
The file attribute denotes the absolute path and filename of the text file to read, one line at a time. When reading large text files, you can reuse the value of the index variable, which contains the current line of the file. When the loop completes, ColdFusion closes the file. |
item |
Optional |
Values are line or chars (In ColdFusion 2016). Denotes how the file is read. |
index |
Optional |
In ColdFusion (2016 release), you need to use either item or index; or use both the attributes together. |
character |
Optional |
The attribute denotes the number of characters to read during each iteration of the loop from the file specified in the file attribute. If the value of the characters attribute is more than the number of characters in the file, ColdFusion uses the number of characters in the file. |
charset |
Optional |
Character set to use when reading the file. |
In the code sample below, ColdFusion opens the text file, myfile.txt, reads each character, and displays the first 20 characters (including spaces) during each iteration of the loop.
<cfset myFile="c:\out\myfile.txt"/> <cfloop file="#myFile#" index="i" item="chars" characters="20"> <cfoutput> #i#:#chars#<br /> </cfoutput> </cfloop>
The next sample reads each line of the file, using the index and item attributes.
<cfset myFile="c:\out\myfile.txt"/> <cfloop file="#myFile#" index="i" item="line"> <cfoutput> #i#:#line#<br /> </cfoutput> </cfloop>
cfloop - Struct
When looping in a struct, each item in the struct is referenced by the variable name in the item attribute. The loop executes until all items have been accessed.
Attribute |
Required/Optional |
Description |
collection |
Required |
A struct object. |
item |
Required |
The structure key that is used to iterate through the key-value pairs. The collection attribute is used with the item attribute. |
For example, in the sample below, the item key iterates through each struct item and displays the key-value pair.
<cfscript> Team = {"Marketing" = "John", "Sales" : {"Executive" : "Tom", "Assistant" = "Mike"},"IT":{"Developers":{"Dev1":"Ashley","Dev2"="Jason"}}}; </cfscript> <cfloop collection="#Team#" item="key" > <cfoutput>#Key#:</cfoutput> <cfdump var="#Team[key]#"> <br/> </cfloop>
cfloop as script
<cfscript> Team = {"Marketing" = "John", "Sales" : {"Executive" : "Tom", "Assistant" = "Mike"},"IT":{"Developers":{"Dev1":"Ashley","Dev2"="Jason"}}}; cfloop(collection=Team ,item="key"){ writeOutput(#Key# & ":"); writeOutput(#SerializeJSon(Team[key])#); writeOutput("<br/>"); } </cfscript>
Output
Marketing:"John"
IT:{"Developers":{"Dev2":"Jason","Dev1":"Ashley"}}
Sales:{"Executive":"Tom","Assistant":"Mike"}