Vinoth Babu
Vinoth Babu

Reputation: 6852

How to get all values from one array which do not exist in another array?

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

Answers (1)

Hanky Panky
Hanky Panky

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

Related Questions