Reputation: 6852
How to get the values from an array that are NOT in another array in PHP?
My current aproach have bad time complexity. Is there an inbuilt php function that can solve my problem?
Example:
$a1 = array(1,2,3,4);
$a2 = array(3,4,5,6,7);
Result:
[5,6,7];
Upvotes: 25
Views: 21269
Reputation: 46900
array_diff is your friend.
Returns an array containing all the entries from array1 that are not present in any of the other arrays.
$a1 = array(1,2,3,4);
$a2 = array(3,4,5,6,7);
$result = array_diff($a2, $a1);
print_r($result);
Will output:
Array
(
[2] => 5
[3] => 6
[4] => 7
)
And if you reverse the parameters like this:
array_diff($a1, $a2)
It will output:
Array
(
[0] => 1
[1] => 2
)
Upvotes: 49