CoreLibs\Basic arrayDiff for full array diff
PHP array_diff only compares missing elements in the second and existing in the first so a full diff is only achieved if compares both ways (a,b) and (b,a) This function uns a full compare and returns difference in an array
This commit is contained in:
@@ -1390,6 +1390,21 @@ class Basic
|
|||||||
return $merged;
|
return $merged;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* correct array_diff that does an actualy difference between two arrays.
|
||||||
|
* array_diff only checks elements from A that are not in B, but not the
|
||||||
|
* other way around.
|
||||||
|
* Note that like array_diff this only checks first level values not keys
|
||||||
|
* @param array $a array to compare a
|
||||||
|
* @param array $b array to compare b
|
||||||
|
* @return array array with missing elements from a & b
|
||||||
|
*/
|
||||||
|
public static function arrayDiff(array $a, array $b): array
|
||||||
|
{
|
||||||
|
$intersect = array_intersect($a, $b);
|
||||||
|
return array_merge(array_diff($a, $intersect), array_diff($b, $intersect));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* search for the needle array elements in haystack and return the ones found as an array,
|
* search for the needle array elements in haystack and return the ones found as an array,
|
||||||
* is there nothing found, it returns FALSE (boolean)
|
* is there nothing found, it returns FALSE (boolean)
|
||||||
|
|||||||
Reference in New Issue
Block a user