Contains value
Searches the entire array to check if any of the elements contains the given value. For example, you can use this to test if the string "sword" is stored anywhere in the array.
That is what the manual says about that condition.
You inverted it.
So, this is only true when there is at least 1 times Item.QueSoy in the WHOLE array.
Further
Item.QueSoy is a 'string'.
Variable = "berries" means you gave that variable the content of a STRING.
Variable = 11 means you gave that variable the value 11
So, either you have a number OR a string.
The value of "berries" = zero. The content of "berries" = "berries"
If you want to know if something is EMPTY (that it will not contain a string) you have to compare to a empty string.
Is variable = "" ?
At the moment you compare: Is variable = 0 ?
But, you did not pre-format the array. As a result there are numbers and strings in the array.
So, either you pre-fill the whole array with "" (the EMPTY STRING).
Or, you make the 'for every x' conditon.
Then a sub condition.
Value at curX = ""
OR
Value at curX = 0
Have to make it an OR block.
Since you coded only "Value at curX = 0" it filled the whole array because as string has a value of zero.
(those that expected me to use programming gramar at this moment are laughting there a.. off)