<cffunction name="listsHaveMatch" returntype="boolean" output="false"
description="Returns true if an item in list one matches an item in list
two.">
    <cfargument name="list1" type="string" required="true">
    <cfargument name="list2" type="string" required="true">
    <cfargument name="delimiters" type="string" default=",">
    <cfargument name="isCaseSensitive" type="boolean" default="false">

    <cfset var lcv = "">

    <cfif NOT arguments.isCaseSensitive>
        <cfloop list="#arguments.list1#" delimiters="#arguments.delimiters#"
index="lcv">
            <cfif listFindNoCase(arguments.list2, lcv, arguments.delimiters)
GT 0>
                <cfreturn true>
            </cfif>
        </cfloop>
    <cfelse>
        <cfloop list="#arguments.list1#" delimiters="#arguments.delimiters#"
index="lcv">
            <cfif listFind(arguments.list2, lcv, arguments.delimiters) GT 0>
                <cfreturn true>
            </cfif>
        </cfloop>
    </cfif>

    <cfreturn false>
</cffunction>


On Thu, May 22, 2008 at 12:14 PM, Dominic Watson <
[EMAIL PROTECTED]> wrote:

> Hey Larry, had the same thought as me ;) However, containsAll() isn't
> what he's after - he needs containsAny() which doesn't exist. Shame
> really.
>
> Dominic
>
> 2008/5/22 Larry Lyons <[EMAIL PROTECTED]>:
> > Jeff,
> >
> > Take advantage of CF sitting on top of Java. Convert the lists to arrays
> using listToArray. Then use the containsAll() method of java list to see if
> all the elements of one array are present in another array. Using your
> example,
> >
> > <cfset list1 = listToArray("700,300,400,1100,2200") />
> > <cfset list2 = listToArray("300,400") />
> >
> > <cfset foo = list1.containsAll(list2) />
> > <!--- reset dump variable in request scope --->
> > <cfset request.cfdumpinited = false />
> > <cfdump expand="true" label="foo" var="#foo#" />
> > <cfabort />
> >
> > hth,
> >
> > larry
> >
> >
> >> Hi folks,
> >>
> >> I'm not 100% sure on all the "list" functions in CF.. so I'm hoping
> >> this group can give me a little guidance.
> >>
> >> Ideally, I'm looking for a UDF that takes in two LISTS and returns a
> >> BOOLEAN.  True if ANY element in list 2 is in list 1.  False if NO
> >> element in list 2 is in list 1.
> >>
> >> I tried to search cflib.org and also looked at the avail functions for
> >> lists. It needs to be optimized, so ideally breaking out of the UDF
> >> once the first match is found.
> >>
> >> EXAMPLES:
> >> list1 = 5,8,2,20
> >> list2 = 4,6
> >> result = FALSE
> >>
> >> list1 = 700,300,400,1100,2200
> >> list2 = 300,400
> >> result = TRUE, but breaking out of comparisions after first find
> >> (300)
> >>
> >> list1 = 1
> >> list2 = 3,4,6,1,2,11,100,101,102,103,104
> >> result = TRUE, but breaking out of comparisions after element 4 = (1)
> >>
> >>
> >> appreciate any guidance!
> >
> >
> >
>
> 

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Adobe® ColdFusion® 8 software 8 is the most important and dramatic release to 
date
Get the Free Trial
http://ad.doubleclick.net/clk;192386516;25150098;k

Archive: 
http://www.houseoffusion.com/groups/CF-Talk/message.cfm/messageid:305906
Subscription: http://www.houseoffusion.com/groups/CF-Talk/subscribe.cfm
Unsubscribe: 
http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=11502.10531.4

Reply via email to