Calcula la diferencia entre arrays

# array_diff

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

array_diff — Calcula la diferencia entre arrays

### Descripción

function array_diff(array `$array`, array `...$arrays`): array

array_diff() compara el array `array` con uno o más arrays y devuelve los valores del array `array` que no están presentes en los otros arrays.

### Parámetros

`array`

  El array desde el cual comparar

`arrays`

  Arrays a comparar

### Valores devueltos

Devuelve un array que contiene todas las entidades del array `array` que no están presentes en ninguno de los otros arrays. Las claves del array `array` son preservadas.

### Historial de cambios

Versión | Descripción
--- | ---
8.0.0 | Esta función puede ser llamada ahora con un solo parámetro. Anteriormente, al menos dos parámetros eran necesarios.

### Ejemplos

Ejemplo #1 Ejemplo con array_diff()

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

    print_r($result);
    ?>

Los valores múltiples en array1 serán todos tratados de la misma forma. Esto mostrará:

    Array
    (
        [1] => blue
    )

Dos elementos son considerados iguales si y solo si `(string) $elem1 === (string) $elem2` ; es decir, cuando la representación de string es la misma.

Ejemplo #2 Ejemplo con la función array_diff() con tipos que no coinciden

    <?php
    // Esto generará una advertencia ya que un array no puede ser convertido a string.
    $source = [1, 2, 3, 4];
    $filter = [3, 4, [5], 6];
    $result = array_diff($source, $filter);

    // Mientras que esto es correcto, ya que los objetos pueden ser convertidos 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 ahora contiene una instancia de S('a');
    var_dump($result);
    ?>

Para utilizar una función de comparación alternativa, consulte la función array_udiff().

### Notas

> Nota:

> Tenga en cuenta que esta función solo verifica una dimensión de un array multidimensional. Por supuesto, se pueden verificar dimensiones más profundas utilizando `array_diff($array1[0], $array2[0]);`.

### Ver también

- array_diff_assoc() - Calcula la diferencia de dos arrays, teniendo en cuenta las claves
- array_udiff() - Calcula la diferencia entre dos arrays utilizando una función de retrollamada
- array_intersect() - Calcula la intersección de arrays
- array_intersect_assoc() - Calcula la intersección de dos arrays con pruebas sobre los índices

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open