PHP.nl

array_diff

array_diff

Computes the difference of arrays

array **array_diff** array $array array $arrays

Compares against one or more other arrays and returns the values in that are not present in any of the other arrays. array``array

arrayThe array to compare from

arraysArrays to compare against

Returns an containing all the entries from that are not present in any of the other arrays. Keys in the array are preserved. array``array``array

Voorbeeld: 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  are all
 treated the same way. This will output :
`$array1`
Array
(
    [1] => blue
)

Two elements are considered equal if and only if . That is, when the is the same. (string) $elem1 === (string) $elem2string representation

Voorbeeld: example with non-matching types

<?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');
var_dump($result);
?>

To use an alternate comparison function, see . array_udiff

Opmerking: > 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]);

array_diff_assoc``array_udiff``array_intersect``array_intersect_assoc