Функция PHP array_intersect_uassoc()
Пример
Сравнение имен и значений ключей двух массивов (используя пользовательскую функцию для сравнения имен ключей) и возвращает пересечение:
<?php function myfunction($a,$b) { if ($a===$b) { return 0; } return ($a>$b)?1:-1; } $a1=array("a"=>"red","b"=>"green","c"=>"blue"); $a2=array("d"=>"red","b"=>"green","e"=>"blue"); $result=array_intersect_uassoc($a1,$a2,"myfunction"); print_r($result); ?>
Определение и использование
Функция array_intersect_uassoc() используется для сравнения имен и значений ключей двух (или более) массивов и возвращает пересечение.
Комментарий:Эта функция использует пользовательскую функцию для сравнения имен ключей!
Эта функция сравнивает имена и значения ключей двух (или более) массивов и возвращает массив пересечения, который включает все значения, присутствующие в сравниваемых массивах (array1) и также в любом другом параметрическом массиве (array2 или array3 и т.д.) имена ключей и значения.
Объяснение
Функция array_intersect_uassoc() использует пользовательскую функцию-обратного вызова для вычисления пересечения массивов, сравнивая индексы с помощью обратного вызова.
Функция array_intersect_uassoc() возвращает массив, который содержит все значения в array1 Такие же значения также присутствуют во всех других массивах параметров. В возвращаемом массиве имена ключей сохраняются без изменений.
Обратите внимание, что в отличие от array_intersect() кроме сравнения значений ключей, также необходимо сравнивать имена ключей.
Эта сравнение производится через вызов пользовательской функции-обратного вызова. Эта функция принимает два параметра, это имена ключей, которые необходимо сравнить. Если первый параметр меньше второго, функция должна вернуть отрицательное число, если параметры равны, то вернуть 0, если первый параметр больше второго, то вернуть положительное число.
грамматика
array_intersect_uassoc(array1,array2,array3...myfunction)
Параметры | Описание |
---|---|
array1 | Обязателен. Первый массив, сравниваемый с другими массивами. |
array2 | Обязателен. Массив, сравниваемый с первым массивом. |
array3,... | Опционален. Другие массивы, сравниваемые с первым массивом. |
myfunction | Обязателен. Строка, определяющая вызовимую функцию сравнения. Если первый параметр меньше, равен или больше второго параметра, функция сравнения должна вернуть целое число, меньшее, равное или большее 0. |
Технические детали
Возврат значений: | Возвращает массив пересечения, который включает все имена ключей в сравниваемых массивах (array1) и также в любом другом параметрическом массиве (array2 или array3 и т.д.) имена ключей и значения. |
Версия PHP: | 5+ |
Более примеров
Пример 1
Сравнить имена ключей и значения трёх массивов (используя пользовательскую функцию для сравнения имён ключей) и вернуть их пересечение:
<?php function myfunction($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","d"=>"blue"); $a3=array("e"=>"yellow","a"=>"red","d"=>"blue"); $result=array_intersect_uassoc($a1,$a2,$a3,"myfunction"); print_r($result); ?>