Algorithm to compare two data sets
I think you are asking about how to implement a set difference operation. Specifically, if user 1's recipe for salad 1 is viewed as a set of ingredients A, and user 2's recipe for salad 1 is viewed as a set of ingredients B, then the the set difference A \ B is exactly the set of ingredients that are in A but not in B.
One well-known and particularly simple algorithm goes like this:

Sort each list of ingredients (let's say in ascending order).
At the start, the first element of each list is the current element.
Repeatedly compare the current elements of the lists. Calling the current elements of A and B by the names a and b, respectively, there are three cases:

a &lt; b Ingredient a is in A and not in B, so make a note of it. Advance the current element for A, but keep the same current element in B.
a = b Ingredient a is in both, so nothing special need be done. Advance both current elements.
a &gt; b Ingredient b is in B and not in A. We don't need to do anything special to rectify this situation. Advance the current element in B.



When you reach the end of both sorted lists, you will have a record of the ingredients that must be added to B's recipe.
There are more complicated algorithms that exploit the fact that strings support more interesting observations than just comparison, or which can take advantage of situations where there's only a small collection of possible ingredients, but I recommend you start here until you're confident that this algorithm doesn't meet your performance needs.