Функции для работы с массивами
PHP Manual

array_diff_uassoc

(PHP 5, PHP 7)

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

Описание

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

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

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

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

array1

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

array2

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

...

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

key_compare_func

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

int callback ( mixed $a, mixed $b )

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

Возвращает 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");.

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


Функции для работы с массивами
PHP Manual