dcat127 Posted August 26, 2010 Posted August 26, 2010 (edited) How do you compare 2 arrays? the = operator does not work i.e. Dim $array[2][2], $array2[2][2] $array[0][0] = "word1" $array[0][1] = "word2" $array[1][0] = "word1" $array[1][1] = "word2" if $array = $array2 Then ;this line does not work MsgBox(0,"Match","") EndIf $array[1][1] = "different word" if $array = $array2 Then ;this line does not work MsgBox(0,"Match","") EndIf Edited August 26, 2010 by dcat127
iamtheky Posted August 26, 2010 Posted August 26, 2010 (edited) Dim $array[2][2], $array2[2][2] $array[0][0] = "word1" $array[0][1] = "word2" $array[1][0] = "word3" $array[1][1] = "word4" ;;change one of these items to make the msgbox reflect NO MATCH $array2[0][0] = "word1" $array2[0][1] = "word2" $array2[1][0] = "word3" $array2[1][1] = "word4" $size = ubound($Array) - 1 For $i = 0 to $size if $array[$i][0] = $array2[$i][0] AND $array[$i][1] = $array2[$i][1] Then MsgBox(0,"Match","Match") Else MsgBox(0,"NO Match","NO Match") EndIf next exit Edited August 26, 2010 by iamtheky ,-. .--. ________ .-. .-. ,---. ,-. .-. .-. .-. |(| / /\ \ |\ /| |__ __||| | | || .-' | |/ / \ \_/ )/ (_) / /__\ \ |(\ / | )| | | `-' | | `-. | | / __ \ (_) | | | __ | (_)\/ | (_) | | .-. | | .-' | | \ |__| ) ( | | | | |)| | \ / | | | | | |)| | `--. | |) \ | | `-' |_| (_) | |\/| | `-' /( (_)/( __.' |((_)-' /(_| '-' '-' (__) (__) (_) (__)
4ggr35510n Posted August 26, 2010 Posted August 26, 2010 (edited) expandcollapse popupFunc _Compare_2D_Arrays(ByRef $first_array, ByRef $second_array) ; main function! If UBound($first_array,0) <> UBound($second_array,0) _ And UBound($first_array) <> 2 _ And UBound($first_array,1) <> UBound($second_array,1) _ And UBound($first_array,2) <> UBound($second_array,2) _ Then Return SetError(1, 0, 0) ; return 0, so they are NOT the same, and set error, couse they're not even close to "same", ; because of different number of elements and/or dimensions For $i = 0 To UBound($first_array) -1 For $j = 0 To UBound($first_array) -1 ; since they've same length, no matter witch UBound we will use If $first_array[$i][$j] <> $second_array[$i][$j] Then Return 0 ; they are NOT the same Next Next Return 1 ;they ARE the same EndFunc ; creating arrays to compare Global $array1[15][15] Global $array2[15][15] For $i = 0 To 14 ; filling the arrays with different numbers For $j = 0 to 14 $array1[$i][$j] = Random(1,100,1) $array2[$i][$j] = Random(1,25) Next Next ; so they wont be the same If _Compare_2D_Arrays($array1, $array2) Then ;comparing! MsgBox(0,"","same") Else MsgBox(0,"","different") EndIf For $i = 0 To 14 ; filling the arrays with SAME numbers For $j = 0 to 14 $random = Random(1,100,1) $array1[$i][$j] = $random $array2[$i][$j] = $random Next Next ; so they WILL be the same If _Compare_2D_Arrays($array1, $array2) Then ;comparing! MsgBox(0,"","same") Else MsgBox(0,"","different") EndIf Edited August 26, 2010 by 4ggr35510n
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now