array_diff_uassoc

(PHP 5, PHP 7)

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

Описание

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

Сравнивает array1 c array2 и возвращает разницу. В отличие от array_diff(), для сравнения используются ключи.

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

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

array1

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

array2

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

...

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

key_compare_func

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

callback ( mixed $a, mixed $b ) : int

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

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

Примеры

Пример #1 Пример использования array_diff_uassoc()

Пара "a" => "green" существует в обоих массивах и поэтому отсутствует в выводе функции. Наоборот, пара 0 => "red" находится в выводе функции, так как второй аргумент "red" имеет ключ, равный 1.

<?php
function key_compare_func($a$b)
{
    if (
$a === $b) {
        return 
0;
    }
    return (
$a $b)? 1:-1;
}

$array1 = array("a" => "green""b" => "brown""c" => "blue""red");
$array2 = array("a" => "green""yellow""red");
$result array_diff_uassoc($array1$array2"key_compare_func");
print_r($result);
?>

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

Array
(
    [b] => brown
    [c] => blue
    [0] => red
)

Равенство 2 индексов проверяется функцией, предоставляемой пользователем.

Примечания

Замечание:

Эта функция обрабатывает только одно измерение n-размерного массива. Естественно, вы можете обрабатывать и более глубокие уровни вложенности, например, используя array_diff_uassoc($array1[0], $array2[0], "key_compare_func");.

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

  • array_diff() - Вычислить расхождение массивов
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_uintersect() - Вычисляет пересечение массивов, используя для сравнения значений callback-функцию
  • array_uintersect_assoc() - Вычисляет пересечение массивов с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_uintersect_uassoc() - Вычисляет пересечение массивов с дополнительной проверкой индекса, используя для сравнения индексов и значений индивидуальные callback-функции