Функция PHP array_uintersect_uassoc()

Пример

Сравните имена ключей и значения двух массивов (используя пользовательские функции для сравнения) и верните пересечение (соответствия):

<?php
function myfunction_key($a, $b)
{
if ($a === $b)
  {
  return 0;
  }
  return ($a > $b) ? 1 : -1;
}
function myfunction_value($a, $b)
{
if ($a === $b)
  {
  return 0;
  }
  return ($a > $b) ? 1 : -1;
}
$a1 = array("a" => "red", "b" => "green", "c" => "blue");
$a2 = array("a" => "red", "b" => "green", "c" => "green");
$result=array_uintersect_uassoc($a1, $a2, "myfunction_key", "myfunction_value");
print_r($result);
?>

Пример выполнения

Определение и использование

Функция array_uintersect_uassoc() сравнивает имена ключей и значения двух (или более) массивов и возвращает пересечение.

Комментарий:Эта функция использует два пользовательских функции для сравнения; первая функция сравнивает имена ключей, вторая функция сравнивает значения!

Эта функция сравнивает имена ключей и значения двух (или более) массивов и возвращает массив пересечения, который включает все элементы, содержащиеся в сравниваемых массивах (array1), а также в любом другом массиве параметров (array2 или array3 и т.д.) имена ключей и значения.

Внимание, с array_uintersect() Разница в том, что также сравниваются имена ключей. Значения и имена ключей (индексы) сравниваются с помощью回调-функций.

Синтаксис

array_uintersect_uassoc(array1,array2,array3...myfunction_key,myfunction_value)
Параметры Описание
array1 Обязателен. Первый массив для сравнения с другими массивами.
array2 Обязателен. Массив для сравнения с первым массивом.
array3,... Опционален. Другие массивы для сравнения с первым массивом.
myfunction_key

Обязателен. Имя пользовательской функции для сравнения имен ключей массива.

Определение قابلого вызова сравнительной функции. Если первый параметр меньше или равен второму параметру, сравнительная функция должна возвращать целое число, меньшее или равное 0.

myfunction_value

Обязателен. Имя пользовательской функции для сравнения значений массива.

Определение قابلого вызова сравнительной функции. Если первый параметр меньше или равен второму параметру, сравнительная функция должна возвращать целое число, меньшее или равное 0.

Использование пользовательских回调-функций myfunction_key и myfunction_value для вычисления交集 двух или более массивов (т.е. array1 существующие в всех других массивах)

Сравнение имен ключей и значений выполняется одновременно, например, элементы "a"=>1 и "b"=>1 не равны.

myfunction_key Указанная функция используется для сравнения равенства имен ключей.myfunction_value Указанная функция используется для сравнения равенства значений ключей. Эти функции имеют два параметра для сравнения. Если первый параметр меньше второго, функция возвращает отрицательное число, если параметры равны, возвращается 0, если первый параметр больше второго, возвращается положительное число.

Имена ключей в возвращаемом массиве сохраняются.

Технические детали

Возврат значений: Возвращает массив, содержащий все элементы array1 в единицах всех других массивов.
Версия PHP: 5+