No hay función incorporada que haga exactamente lo que está pidiendo. array_diff()
está cerca, pero no del todo. Por lo que usted tiene que rodar su propia buena función ordenada o bien hacer algo feo como este:
array_diff(array_unique(
array_merge(
array_values($arr2),
array_values($arr3),
array_values($arr4)
)),
$arr1
);
Se puede quitar la llamada a array_unique()
si desea que los valores que aparecen varias veces en las matrices para también ser representado múltiple veces en tu resultado
Puede eliminar las llamadas a array_values()
si sus claves en las matrices son todas numéricas o si está seguro de que no hay claves no numéricas que aparecen en más de una de las matrices que se fusionan.
Por lo tanto, en esas circunstancias ideales, se puede simplificar a:
array_diff(array_merge($arr2, $arr3, $arr4), $arr1);
En la teoría de conjuntos, se llamaría el complemento –
dup? http://stackoverflow.com/questions/5582242/opposite-of-array-intersect – Geo