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

array_diff_ukey

Поддерживаемые версии PHP: (PHP 5 >= 5.1.0, PHP 7)

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

Описание функции

array array_diff_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

Сравнивает ключи array1 с ключами array2 и возвращает разницу. Эта функция похожа на array_diff() за исключением того, что сравниваются ключи, а не значения.

В отличие от функции array_diff_key() для сравнения ключей используется функция, предоставляемая пользователем, а не встроенная функция.

Параметры

array1

Исходный массив

array2

Массив, с которым идет сравнение

...

Дополнительные массивы, с которыми осуществляется сравнение

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.

int callback ( mixed $a, mixed $b )

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

Возвращает массив (array), содержащий все элементы array1, отсутствующие в каком-либо из всех остальных массивов.

Примеры работы

Пример #1 Пример выполнения array_diff_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_diff_ukey($array1$array2'key_compare_func'));
?>

Результат выполнения:

array(2) {
  ["red"]=>
  int(2)
  ["purple"]=>
  int(4)
}

Примечания

Замечание:

Обратите внимание, что эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_ukey($array1[0], $array2[0], 'callback_func');.


Возврат к списку