This page shows samples of how my ListCompare function for ColdFusion works.
You can Download the function at the bottom of the page.

This function will compare two lists and return True if the lists share any value in common. There is also the option to make the search case sensitive or to return a list of the common values instead of a boolean.


Lists:
  • List_1 = "a,b,c,d"
  • List_2 = "1,2,3,4"
  • List_3 = "1,2,a,b"
  • List_4 = "A,B,X,Y"
  • List_5 = "C,D,1,2"
  • FUNCTION List1 List2 RETURNS
    ListCompare(List1,List2,CaseSensitive)     Returns Boolean
    listCompare(List_2,List_1) 1,2,3,4 a,b,c,d False
    listCompare(List_3,List_1) 1,2,a,b a,b,c,d True
    listCompare(List_4,List_1) A,B,X,Y a,b,c,d True
    listCompare(List_5,List_1) C,D,1,2 a,b,c,d True
     
    listCompare(List_1,List_4) a,b,c,d 1,2,3,4 False
    listCompare(List_3,List_2) 1,2,a,b 1,2,3,4 True
    listCompare(List_4,List_2) A,B,X,Y 1,2,3,4 False
    listCompare(List_5,List_2) C,D,1,2 1,2,3,4 True
     
    listCompare(List_1,List_3) a,b,c,d 1,2,a,b True
    listCompare(List_2,List_3) 1,2,3,4 1,2,a,b True
    listCompare(List_4,List_3) A,B,X,Y 1,2,a,b True
    listCompare(List_5,List_3) C,D,1,2 1,2,a,b True
     
    listCompare(List_1,List_4) a,b,c,d A,B,X,Y True
    listCompare(List_2,List_4) 1,2,3,4 A,B,X,Y False
    listCompare(List_3,List_4) 1,2,a,b A,B,X,Y True
    listCompare(List_5,List_4) C,D,1,2 A,B,X,Y False
     
    listCompare(List_1,List_5) a,b,c,d C,D,1,2 True
    listCompare(List_2,List_5) 1,2,3,4 C,D,1,2 True
    listCompare(List_3,List_5) 1,2,a,b C,D,1,2 True
    listCompare(List_4,List_5) A,B,X,Y C,D,1,2 False
     
    Case Sensitive Comparisons
    listCompare(List_1,List_5,1) a,b,c,d A,B,X,Y False
    listCompare(List_2,List_5,1) 1,2,3,4 A,B,X,Y True
    listCompare(List_3,List_5,1) 1,2,a,b A,B,X,Y True
    listCompare(List_5,List_5,1) C,D,1,2 A,B,X,Y True
     
    listCompare(List_1,List_5,1) a,b,c,d C,D,1,2 False
    listCompare(List_2,List_5,1) 1,2,3,4 C,D,1,2 True
    listCompare(List_3,List_5,1) 1,2,a,b C,D,1,2 True
    listCompare(List_4,List_5,1) A,B,X,Y C,D,1,2 False
     
    Return Common Values
    ListCompare(List1,List2,CaseSensitive,ReturnSameList)     Returns List
    listCompare(List_1,List_3,0,1) a,b,c,d 1,2,a,b a,b 
    listCompare(List_2,List_3,0,1) 1,2,3,4 1,2,a,b 1,2 
    listCompare(List_4,List_3,0,1) A,B,X,Y 1,2,a,b A,B 
    listCompare(List_5,List_3,0,1) C,D,1,2 1,2,a,b 1,2 
     
    listCompare(List_1,List_5,1,1) a,b,c,d C,D,1,2  
    listCompare(List_2,List_5,1,1) 1,2,3,4 C,D,1,2 1,2 
    listCompare(List_3,List_5,1,1) 1,2,a,b C,D,1,2 1,2 
    listCompare(List_4,List_5,1,1) A,B,X,Y C,D,1,2  
     
    Download ListCompare() function:
    
    
    <!--- ============ W2M LISTCOMPARE ============ --->
    <CFFUNCTION name="ListCompare" output="no" hint="This function will compare two lists and return True if the lists share any value in common.  It can also return a new list with just the common values.">
    <CFARGUMENT name="List1" required="Yes">
    <CFARGUMENT name="List2" required="Yes">
    <CFARGUMENT name="CaseSensitive" required="No" type="boolean" default="False">
    <CFARGUMENT name="ReturnSameList" required="No" type="boolean" default="False"><!--- Set this to True to return a list of the common values instead of a boolean. --->
    <CFARGUMENT name="strDelimiter" required="No" type="string" default=","><!--- Delimiters used in List 1 and in any returned list. --->
    <CFARGUMENT name="strDelimiter2" required="No" type="string" default=","><!--- Delimiters used in List 2. --->
    
    <!---
    	###################################################
    	## Author: George Jaros                          ##
    	## Script Name: ColdFusion ListCompare Function  ##
    	## Copyright 2007 George Jaros & Web 2 Market    ##
    	## www.georgejaros.com  www.web2market.com       ##
    	## This code may be replicated as long as        ##
    	## this header statement is included.  The       ##
    	## Instructions below may be removed.            ##
    	###################################################
    
    This function will compare two lists and return True if the lists share any value in common.
    There is also the option to make the search case sensitive or to return a list of the common values instead of a boolean.
    
    Examples:
    	List_1 = "a,b,c,d"
    	List_2 = "1,2,3,4"
    	List_3 = "1,2,a,b"
    	List_4 = "A,B,X,Y"
    	List_5 = "C,D,1,2"
    	
    	listCompare(List_2,List_1) = False
    	listCompare(List_3,List_1) = True
    	listCompare(List_4,List_1) = True
    	listCompare(List_5,List_1) = True
    
    	listCompare(List_1,List_2) = False
    	listCompare(List_3,List_2) = True
    	listCompare(List_4,List_2) = False
    	listCompare(List_5,List_2) = True
    
    	listCompare(List_1,List_3) = True
    	listCompare(List_2,List_3) = True
    	listCompare(List_4,List_3) = True
    	listCompare(List_5,List_3) = True
    
    	listCompare(List_1,List_4) = False
    	listCompare(List_2,List_4) = False
    	listCompare(List_3,List_4) = False
    	listCompare(List_5,List_4) = False
    
    	listCompare(List_1,List_5) = True
    	listCompare(List_2,List_5) = True
    	listCompare(List_3,List_5) = True
    	listCompare(List_4,List_5) = False
    
    	listCompare(List_1,List_4,1) = False
    	listCompare(List_2,List_4,1) = False
    	listCompare(List_3,List_4,1) = False
    	listCompare(List_5,List_4,1) = True
    
    	listCompare(List_1,List_5,1) = False
    	listCompare(List_2,List_5,1) = True
    	listCompare(List_3,List_5,1) = True
    	listCompare(List_4,List_5,1) = False
    
    	listCompare(List_1,List_3,0,1) = "a,b"
    	listCompare(List_2,List_3,0,1) = "1,2"
    	listCompare(List_4,List_3,0,1) = "A,B"
    	listCompare(List_5,List_3,0,1) = "1,2"
    
    	listCompare(List_1,List_5,1,1) = ""
    	listCompare(List_2,List_5,1,1) = "1,2"
    	listCompare(List_3,List_5,1,1) = "1,2"
    	listCompare(List_4,List_5,1,1) = ""
    --->
    
    <CFSET blnCompared = False>
    <CFSET lstSameList = "">
    <CFLOOP list="#List1#" index="idx" delimiters="#strDelimiter#">
    	<CFIF CaseSensitive>
    		<CFIF ListFind(List2,idx,strDelimiter2)>
    			<CFSET blnCompared = True>
    			<CFSET lstSameList = ListAppend(lstSameList,idx,strDelimiter)>
    		</CFIF>
    	<CFELSE>
    		<CFIF ListFindNoCase(List2,idx,strDelimiter2)>
    			<CFSET blnCompared = True>
    			<CFSET lstSameList = ListAppend(lstSameList,idx,strDelimiter)>
    		</CFIF>
    	</CFIF>
    </CFLOOP>
    
    <CFIF ReturnSameList>
    	<CFRETURN lstSameList>
    <CFELSE>
    	<CFRETURN blnCompared>
    </CFIF>
    
    </CFFUNCTION>
    <!--- ============ END LISTCOMPARE() ============ --->
    
    
    eXTReMe Tracker