array_diff

(PHP 4 >= 4.0.1, PHP 5, PHP 7)

array_diffCalculează diferența dintre tablouri

Descrierea

array_diff ( array $array1 , array $array2 , array $... = ? ) : array

Compară array1 cu unul sau mai multe tablouri și întoarce valorile din array1 care nu sunt prezente în celelalte tablouri.

Parametri

array1

Tabloul de referință

array2

Tabloul care se compară

...

Mai multe tablouri pentru a se compara

Valorile întoarse

Întoarce un array ce conține toate înregistrările din array1 care nu sunt prezente nici în unul din celelalte tablouri. Cheile din tabloul array1 sunt păstrate.

Exemple

Example #1 Exemplu array_diff()

<?php
$array1 
= array("a" => "green""red""blue""red");
$array2 = array("b" => "green""yellow""red");
$result array_diff($array1$array2);

print_r($result);
?>

Aparițiile multiple în $array1 sunt toate tratate în același mod. Aceasta va afișa :

Array
(
    [1] => blue
)

Example #2 Exemplu array_diff() cu tipuri ce nu se potrivesc

Două elemente sunt considerate egale dacă și numai dacă (string) $elem1 === (string) $elem2. Adică atunci când reprezentarea sub formă de șir de caractere este aceeași.

<?php
// Aceasta va genera o notificare că un tablou nu poate fi preschimbat în șir de caractere.
$source = [1234];
$filter = [34, [5], 6];
$result array_diff($source$filter);

// Iar aceasta este fine, deoarece obiectele pot fi preschimbate în șiruri de caractere.
class {
  private 
$v;

  public function 
__construct(string $v) {
    
$this->$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 acum conține o instanță a S('a');
?>

Pentru a utiliza o funcție de comparație alternativă vedeți array_udiff().

Note

Notă:

Această funcție verifică numai o dimensiune a unui tablou n-dimensional. Desigur că puteți să verificați dimensiunile mai adânci utilizând array_diff($array1[0], $array2[0]);.

A se vedea și