Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations John Tel on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Remove Empty Array Elements 1

Status
Not open for further replies.

coldfused

Technical User
Jan 27, 2001
2,442
US
Example:
Code:
<!--- Set Array Variables and Dimensions --->
<cfset builderArray = ArrayNew(1)>
<cfset builderEmailArray = ArrayNew(1)>

<!--- Initialize Arrays --->
<cfset initialize = ArraySet(builderArray,1,5,"")>
<cfset initialize = ArraySet(builderEmailArray,1,5,"")>

<!---  Add Values Accordingly --->

<!---  The First Two Below Would Represent Empty Values --->
<cfset builderArray[1] = "">
<cfset builderEmailArray[1] = "">

<cfset builderArray[2] = "Your Builder">
<cfset builderEmailArray[2] = "Your Builder Email">

<cfset builderArray[3] = "Your Builder">
<cfset builderEmailArray[3] = "Your Builder Email">

<p><cfoutput>#arraytolist(builderArray)#</cfoutput></p>
<p><cfoutput>#arraytolist(builderEmailArray)#</cfoutput></p>

Outputs:
Code:
,My Builder,Your Builder,,

,My Builder Builder Email,Your Builder Email,,
What I need is:
Code:
My Builder,Your Builder

My Builder Builder Email,Your Builder Email

How do I remove the extra commas? Or how do I remove empty values and extra commas? I tried "arrayresize" but it did not produce any different results.

Thanks in advance,
Carl

----------------------------------------
Always Learning...
 
Using TruthInSatire's code from another thread I end up with this:
Code:
<cfset builderArray[1] = "">
<cfset builderEmailArray[1] = "">

<cfset builderArray[2] = "My Builder">
<cfset builderEmailArray[2] = "My Builder Builder Email">

<cfset builderArray[3] = "Your Builder">
<cfset builderEmailArray[3] = "Your Builder Email">

<cfloop from = "1" to = "#arrayLen(builderArray)#" index = "x">
  <cfif x lte arrayLen(builderArray) and builderArray[x] eq "">
    <cfset temp = arrayDeleteAt(builderArray, x)>
  </cfif>
</cfloop>
<cfloop from = "1" to = "#arrayLen(builderEmailArray)#" index = "x">
  <cfif x lte arrayLen(builderEmailArray) and builderEmailArray[x] eq "">
    <cfset temp = arrayDeleteAt(builderEmailArray, x)>
  </cfif>
</cfloop>

<p><cfoutput>#arraytolist(builderArray)#</cfoutput></p>
<p><cfoutput>#arraytolist(builderEmailArray)#</cfoutput></p>

Which outputs:
Code:
My Builder,Your Builder,

My Builder Builder Email,Your Builder Email,

Now all I need to do is loose the last trailing comma.

Any ideas?

----------------------------------------
Always Learning...
 
How's this work for you:

Code:
<cfset builderArray[1] = "">
<cfset builderEmailArray[1] = "">

<cfset builderArray[2] = "My Builder">
<cfset builderEmailArray[2] = "My Builder Builder Email">

<cfset builderArray[3] = "Your Builder">
<cfset builderEmailArray[3] = "Your Builder Email">

<cfloop from="#arrayLen(builderArray)#" to="1" index="x" step="-1">
	<cfif NOT Len(Trim(builderArray[x]))>
		<cfset temp = arrayDeleteAt(builderArray, x)>
	</cfif>

	<cfif NOT Len(Trim(builderEmailArray[x]))>
		<cfset temp = arrayDeleteAt(builderEmailArray, x)>
	</cfif>
</cfloop>

<p><cfoutput>#arraytolist(builderArray)#</cfoutput></p>
<p><cfoutput>#arraytolist(builderEmailArray)#</cfoutput></p>

hope this helps!

Tony
 
Perfect.

Thanks.

----------------------------------------
Always Learning...
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top