參數是這樣的:逆array_intersect的()
function foo(arr1, arr2, arr3, arr4 ...)
和函數應返回從ARR2,ARR3,arr4所有元素......這不存在ARR1的陣列。
有一個內置在這個功能呢?還是我需要用自己的東西和東西來製作它? :)
參數是這樣的:逆array_intersect的()
function foo(arr1, arr2, arr3, arr4 ...)
和函數應返回從ARR2,ARR3,arr4所有元素......這不存在ARR1的陣列。
有一個內置在這個功能呢?還是我需要用自己的東西和東西來製作它? :)
有,它正是你所要求的沒有內置的功能。 array_diff()
接近,但並不完全。所以你必須推出自己的漂亮整潔的功能,否則做這樣的事情醜陋:
array_diff(array_unique(
array_merge(
array_values($arr2),
array_values($arr3),
array_values($arr4)
)),
$arr1
);
如果你想要那個多次出現在陣列也可以表示多值可刪除調用array_unique()
次在您的結果。
可以或刪除調用array_values()
如果你在你的數組鍵是所有的數字,如果你確信沒有出現在陣列中的一個以上的被合併非數字鍵。
因此,在這些理想的情況下,它可以簡化爲:
array_diff(array_merge($arr2, $arr3, $arr4), $arr1);
+1所有沒有發生到我的防禦性編程 – GordonM
你可以用和array_diff做到這一點,但你將不得不扭轉局面。
$result = array_diff (array_merge ($arr2, $arr3, $arr4), $arr1);
編輯:特洛特的答案佔地面積,地雷不邊緣的情況下的負載。這可能是你要得到的最好的解決方案。
在集合論它會被稱爲補 – 2011-12-04 19:16:21
DUP? http://stackoverflow.com/questions/5582242/opposite-of-array-intersect – Geo