(PHP 4 >= 4.0.1, PHP 5, PHP 7)
array_diff — Computes the difference of arrays
$array1
   , array $array2
   [, array $...
  ] ) : array
   Compares array1 against one or more other arrays and
   returns the values in array1 that are not present in
   any of the other arrays.
  
array1The array to compare from
array2An array to compare against
...More arrays to compare against
   Returns an array containing all the entries from
   array1 that are not present in any of the other arrays.
   Keys in the array1 array are preserved.
  
Example #1 array_diff() example
<?php
$array1 = array("a" => "green", "red", "blue", "red");
$array2 = array("b" => "green", "yellow", "red");
$result = array_diff($array1, $array2);
print_r($result);
?>
Multiple occurrences in $array1 are all treated the same way. This will output :
Array
(
    [1] => blue
)
Example #2 array_diff() example with non-matching types
     Two elements are considered equal if and only if
     (string) $elem1 === (string) $elem2. That is,
     when the string representation is the same.
    
<?php
// This will generate a Notice that an array cannot be cast to a string.
$source = [1, 2, 3, 4];
$filter = [3, 4, [5], 6];
$result = array_diff($source, $filter);
// Whereas this is fine, since the objects can cast to a string.
class S {
  private $v;
  public function __construct(string $v) {
    $this->v = $v;
  }
  public function __toString() {
    return $this->v;
  }
}
$source = [new S('a'), new S('b'), new S('c')];
$filter = [new S('b'), new S('c'), new S('d')];
$result = array_diff($source, $filter);
// $result now contains one instance of S('a');
?>
To use an alternate comparison function, see array_udiff().
Note:
This function only checks one dimension of a n-dimensional array. Of course you can check deeper dimensions by using
array_diff($array1[0], $array2[0]);.