Arguments are like this:
function foo(arr1, arr2, arr3, arr4 ...)
and the function should return a array of all elements from arr2, arr3, arr4 … that don’t exist in arr1.
Is there a built in function for this? Or do I need to make it myself with foreach and stuff? 🙂
There is no built-in function that does exactly what you are asking for.
array_diff()is close, but not quite. So you’ll have to roll your own nice neat function or else do something ugly like this:You can remove the call to
array_unique()if you want values that appear multiple times in the arrays to also be represented multiple times in your result.You can remove the calls to
array_values()if your keys in your arrays are all numeric or if you are certain that there are no non-numeric keys that appear in more than one of the arrays being merged.So, in those ideal circumstances, it can be simplified to: