Calcula la intersección de dos arrays utilizando una función de retrollamada sobre las claves para la comparación

# array_intersect_ukey

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

array_intersect_ukey — Calcula la intersección de dos arrays utilizando una función de retrollamada sobre las claves para la comparación

### Descripción

function array_intersect_ukey(array `$array`, array `...$arrays`, callable `$key_compare_func`): array

array_intersect_ukey() devuelve un array que contiene todas las valores del array `array` que contienen claves presentes en todos los argumentos.

### Parámetros

`array`

  Array inicial para la comparación de arrays.

`arrays`

  Arrays a comparar.

`key_compare_func`
  La función de comparación debe retornar un entero menor que, igual a, o mayor que 0 si el primer argumento es considerado, respectivamente, menor que, igual a, o mayor que el segundo.
  function callback(mixed `$a`, mixed `$b`): int
  Precaución

  Retornar valores no-entero desde la función de comparación, tales como float, resultará en una conversión interna del valor de retorno del callback a int. Así, valores tales como `0.99` y `0.1` serán convertidos ambos a un valor entero de `0`, lo que comparará tales valores como iguales.

### Valores devueltos

Devuelve los valores del array `array` cuyas claves existen en todos los argumentos.

### Ejemplos

Ejemplo #1 Ejemplo con array_intersect_ukey()

    <?php
    function key_compare_func($key1, $key2)
    {
        if ($key1 == $key2)
            return 0;
        else if ($key1 > $key2)
            return 1;
        else
            return -1;
    }

    $array1 = array('blue'  => 1, 'red'  => 2, 'green'  => 3, 'purple' => 4);
    $array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan'   => 8);

    var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
    ?>

El ejemplo anterior mostrará:

    array(2) {
      ["blue"]=>
      int(1)
      ["green"]=>
      int(3)
    }

En este ejemplo, se puede ver que solo las claves `'blue'` y `'green'` están presentes en ambos arrays y, por lo tanto, son devueltas. Note también que los valores para las claves `'blue'` y `'green'` difieren entre los dos arrays. No obstante, aún coinciden porque solo las claves son verificadas. Los valores devueltos son los del array `array`.

### Ver también

- array_diff() - Calcula la diferencia entre arrays
- array_udiff() - Calcula la diferencia entre dos arrays utilizando una función de retrollamada
- array_diff_assoc() - Calcula la diferencia de dos arrays, teniendo en cuenta las claves
- array_diff_uassoc() - Calcula la diferencia entre dos arrays asociativos, utilizando una función de retrollamada
- array_udiff_assoc() - Calcula la diferencia entre arrays con verificación de índices, compara los datos con una función de retrollamada
- array_udiff_uassoc() - Calcula la diferencia entre dos arrays asociativos, compara los datos y los índices con una función de retorno
- array_diff_key() - Calcula la diferencia de dos arrays utilizando las claves para la comparación
- array_diff_ukey() - Calcula la diferencia entre dos arrays utilizando una función de retrollamada sobre las claves para comparación
- array_intersect() - Calcula la intersección de arrays
- array_intersect_assoc() - Calcula la intersección de dos arrays con pruebas sobre los índices
- array_intersect_uassoc() - Calcula la intersección de dos arrays con pruebas en los índices, compara los índices utilizando una función de retrollamada
- array_intersect_key() - Calcula la intersección de dos arrays utilizando las claves para la comparación

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