Computa a interseção de arrays usando uma função de retorno nas chaves para comparação

# array_intersect_ukey

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

array_intersect_ukey — Computa a interseção de arrays usando uma função de retorno nas chaves para comparação

### Descrição

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

array_intersect_ukey() retorna um array contendo todos os valores de `array` que têm as mesmas chaves presentes em todos os argumentos.

### Parâmetros

`array`

  Array inicial para comparação dos arrays.

`arrays`

  Arrays para comparar as chaves.

`key_compare_func`
  A função de comparação deve retornar um inteiro menor que, igual ou maior que zero se o primeiro argumento for considerado respectivamente menor que, igual ou maior que o segundo.
  function callback(mixed `$a`, mixed `$b`): int
  Cuidado

  Retornar valores não inteiros da função de comparação, como float, resultará em uma conversão interna do valor retornado da função callback para int. Portanto, valores como `0.99` e `0.1` serão convertidos para o valor inteiro `0`, o que comparará esses valores como iguais.

### Valor Retornado

Retorna os valores de `array` cujas chaves existem em todos os argumentos.

### Exemplos

Exemplo #1 Exemplo da função 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('azul'  => 1, 'vermelho' => 2, 'verde'   => 3, 'roxo'  => 4);
    $array2 = array('verde' => 5, 'azul'     => 6, 'amarelo' => 7, 'rosa'  => 8);

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

O exemplo acima produzirá:

    array(2) {
      ["azul"]=>
      int(1)
      ["verde"]=>
      int(3)
    }

Em nosso exemplo, é possível ver que somente as chaves `'azul'` e `'verde'` estão presentes em ambos os arrays e assim retornadas. Observe também que os valores para as chaves `'azul'` e `'verde'` diferem entre os dois arrays. Uma combinação ainda ocorre porque somente as chaves são verificadas. Os valores retornados são os do `array`.

### Veja Também

- array_diff() - Computa as diferenças entre arrays
- array_udiff() - Computa a diferença de arrays usando uma função de callback para comparação dos dados
- array_diff_assoc() - Computa a diferença entre arrays com checagem adicional de índice
- array_diff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice que feita por uma função de callback fornecida pelo usuário
- array_udiff_assoc() - Computa a diferença entre arrays com verificação adicional de índice, comparando dados por uma função de retorno
- array_udiff_uassoc() - Computa a diferença entre arrays com checagem adicional de índice, compara dados e índices por uma função de callback
- array_diff_key() - Computa a diferença entre arrays usando as chaves na comparação
- array_diff_ukey() - Computa a diferença entre arrays usando uma função callback na comparação de chaves
- array_intersect() - Calcula a interseção entre arrays
- array_intersect_assoc() - Computa a interseção de arrays com uma adicional verificação de índice
- array_intersect_uassoc() - Computa a interseção de arrays com checagem de índice adicional, compara índices por uma função de callback
- array_intersect_key() - Calcula a interseção de arrays, comparando pelas chaves

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