Función PHP array_diff_key ()

Definición y uso

los array_diff_key() función compara el keys desde array1 contra las llaves de array2, array3...etc y devuelve una matriz con la diferencia, es decir. las claves que están disponibles en array1 y no disponibles en array2, array3 ... etc. Esta función es comoarray_diff() función excepto que la comparación se realiza en función de las claves en lugar de los valores.

Sintaxis

array array_diff_key ( array $array1, array $array2 [, array $...] );

Parámetros

No Señor Descripción de parámetros
1

array1(Required)

Esta primera matriz se comparará con.

2

array2(Required)

Es una matriz para comparar con la primera matriz.

3

array3(Optional)

Es una matriz para comparar con la primera matriz.

Valores devueltos

Esta función devuelve una matriz que contiene todas las claves de array1 pero que no están presentes en ninguna de las otras matrices pasadas a la función.

Versión PHP

Esta función se introdujo por primera vez en PHP versión 5.1.0

Ejemplo

Este ejemplo devuelve valores 4 y 5 porque las primeras tres claves (0, 1 y 2) son iguales en ambas matrices, aunque sus valores son diferentes:

<?php
   $input1 = array(1, 2, 3, 4, 5);
   $input2 = array(4, 5, 6);

   $result = array_diff_key($input1, $input2);
   print_r($result);
?>

Esto producirá el siguiente resultado:

Array
(
    [3] => 4
    [4] => 5
)

Ejemplo

Este ejemplo devuelve una matriz vacía, porque array_diff_key () compara claves y no valores porque encuentra que ambas matrices tienen las mismas claves, aunque con valores diferentes, por lo que no encuentra ninguna diferencia.

<?php
   $input4 = array(1, 2, 3);
   $input5 = array(4, 5, 6);
 
   $result = array_diff_key($input4, $input5);
   print_r($result);
?>

Esto producirá el siguiente resultado:

Array
(
)

Ejemplo

Pruebe el siguiente ejemplo:

<?php
   $input1 = array("a"=>"red","b"=>"green","c"=>"blue","d"=>"yellow", "f"=>"yellow");
   $input2 = array("a"=>"red","b"=>"green","c"=>"blue");

   $result = array_diff_key($input1, $input2);
   print_r($result);
?>

Esto producirá el siguiente resultado:

Array
(
    [d] => yellow
    [f] => yellow
)