Вычисляет пересечение массивов, используя callback-функцию для сравнения ключей

# array_intersect_ukey

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

array_intersect_ukey — Вычисляет пересечение массивов, используя callback-функцию для сравнения ключей

### Описание

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

Функция array_intersect_ukey() возвращает массив, состоящий из значений массива `array`, ключи которых содержатся во всех аргументах.

### Список параметров

`array`

  Основной проверяемый массив.

`arrays`

  Массивы, с которыми сравниваются ключи.

`key_compare_func`
  Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.
  function callback(mixed `$a`, mixed `$b`): int
  Предостережение

  При возврате из функции сравнения нецелых значений наподобие float PHP внутренне приведёт значение, которое возвращает callback-функции, к типу int. Поэтому значения наподобие `0.99` и `0.1` приводятся к целочисленному значению `0` и сравниваются как равные.

### Возвращаемые значения

Возвращает ассоциативный массив, состоящий из значений массива `array`, ключи которых содержатся во всех аргументах.

### Примеры

Пример #1 Пример использования функции 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'));
    ?>

Результат выполнения приведённого примера:

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

В нашем примере только ключи `'blue'` и `'green'` содержатся в обоих массивах, и поэтому возвращаются. Обратите внимание, что значения, которые соответствуют ключам `'blue'` и `'green'`, неодинаковые в двух массивах. Совпадение всё равно есть, так как сравниваются только ключи. Возвращаемые значения берутся из массива `array`.

### Смотрите также

- array_diff() - Вычисляет расхождение массивов
- array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
- array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
- array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса через пользовательскую callback-функцию
- array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
- array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, сравнивая значения и индексы через callback-функцию
- array_diff_key() - Вычисляет расхождение массивов, сравнивая ключи
- array_diff_ukey() - Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
- array_intersect() - Вычисляет пересечение массивов
- array_intersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса
- array_intersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, сравнивая индексы через callback-функцию
- array_intersect_key() - Вычисляет пересечение массивов путём сравнения ключей

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