Finding the non-matching values collection/array

R

Robb Meade

Hi all,

Ok, lets say I have the following,

Request.Form collection which produces this (as the element names)

a
b
c
d
e
f

And I also have an array containg this

a
b
c

What I want to do is loop through both and response.write to the screen only
the items that are not the same, so in this case I would see

d
e
f

displayed on the screen, I've tried a couple of things but its not working,
has anyone got any suggestions...

Cheers

Robb
 
R

Robb Meade

for i = 0 to ubound(ARR2)
found = "false"
for j = 0 to ubound(ARR1)
if (ARR2(i) = ARR1(j)) then
found = "true"
exit for
end if
next
if found ="false" then
strOutput=strOutput & ARR2(i) & ","
ARR2temp = ARR2(i)
end if
next
 
E

Evertjan.

Robb Meade wrote on 29 jun 2003 in
microsoft.public.inetserver.asp.general:
for i = 0 to ubound(ARR2)
found = "false"
for j = 0 to ubound(ARR1)
if (ARR2(i) = ARR1(j)) then
found = "true"
exit for
end if
next
if found ="false" then
strOutput=strOutput & ARR2(i) & ","
ARR2temp = ARR2(i)
end if
next


Where is ARR2temp used for ?
You need to initialise strOutput
Better use a boolean for "found"

Let me try:

strOutput=""
for i = 0 to ubound(ARR2)
found = false
for j = 0 to ubound(ARR1)
if ARR2(i) = ARR1(j) then
found = true
exit for
end if
next
if not found then
strOutput=strOutput & ARR2(i) & "<br>"
end if
next
response.write strOutput

=============================

Even so, if ARR2 has duplicates not in ARR1, they will be written
And if ARR1 has entries not in ARR2 they will not be written

Perhaps it is better to
1 delete all double entries inside each array
2 put all values in one array arr3 and
3 output all non-double entries ?

This is step 3:

for i=0 to ubound(arr3)
for j=0 to ubound(arr3)
found=false
if arr3(i)=arr3(j) and i<>j then
found=true
exit for
end if
next
if not found then
response.write arr3(i) & "<br>"
end if
next
 
E

Evertjan.

Evertjan. wrote on 29 jun 2003 in microsoft.public.inetserver.asp.general:
for i=0 to ubound(arr3)
for j=0 to ubound(arr3)
found=false
if arr3(i)=arr3(j) and i<>j then
.....

damn, still not right, should be:

for i=0 to ubound(arr3)
found=false
for j=0 to ubound(arr3)
if arr3(i)=arr3(j) and i<>j then
found=true
exit for
end if
next
if not found then
response.write arr3(i) & "<br>"
end if
next
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,483
Members
44,902
Latest member
Elena68X5

Latest Threads

Top