25

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];
1

1 Answer 1

49

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
)
Sign up to request clarification or add additional context in comments.

2 Comments

Got it. Please change you answer as $result = array_diff($a2, $a1); Thanks
please change $a1 to $a2 and vice-versa for better explanation. Otherwise your "array1" is $a2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.