PHP array_udiff_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_udiff_uassoc($a1,$a2,"myfunction_key","myfunction_value"); print_r($result); ?>
定义和用法
array_udiff_uassoc() 函数用于比较两个(或更多个)数组的键名和键值,并返回差集。
注释:该函数使用两个用户自定义函数进行比较;第一个函数比较键名,第二个函数比较键值!
该函数比较两个(或更多个)数组的键名和键值,并返回一个差集数组,该数组包括了所有在被比较的数组(array1включая, но не в других массивах параметров (array2 или array3 и т.д. из ключей и значений.
说明
array_udiff_uassoc() 函数返回 array1 数组中存在但其它数组中都不存在的部分。返回的数组中键名保持不变。
注意与 array_diff() 以及 array_udiff() 不同的是键名也用于比较。同时进行键名和键值的比较,如 "a"=>1 和 "b"=>1 这两个元素是不相等的。
对键名(索引)的检查也是由回调函数 myfunction_key 进行的。这和 array_udiff_assoc() поведение отличается, вторая функция использует внутренние функции для сравнения индексов.
сравнение данных массива выполняется с использованием вызываемой пользователям обратной функции myfunction_value осуществляется. В этом отношении и array_diff_assoc() поведение正好相反, вторая функция использует внутренние функции для сравнения.
Эти функции имеют два параметра для сравнения. Если первый параметр меньше второго параметра, функция возвращает отрицательное число, если параметры равны, то возвращается 0, если первый параметр больше второго, то возвращается положительное число.
Синтаксис
array_udiff_uassoc(array1,array2,array3...myfunction_key,myfunction_value)
Параметры | Описание |
---|---|
array1 | Обязателен. Первый массив для сравнения с другими массивами. |
array2 | Обязателен. Массив для сравнения с первым массивом. |
array3,... | Опционален. Другие массивы для сравнения с первым массивом. |
myfunction_key |
Обязателен. Название пользовательской функции для сравнения имен массива. Строка значений, определяющая вызываемую функцию сравнения. Если первый параметр меньше или равен второму параметру, функция сравнения должна вернуть целое число, меньше или равное 0. |
myfunction_value |
Обязателен. Название пользовательской функции для сравнения значений массива. Строка значений, определяющая вызываемую функцию сравнения. Если первый параметр меньше или равен второму параметру, функция сравнения должна вернуть целое число, меньше или равное 0. |
Технические детали
Возврат значений: | возвращает массив разницы, который включает все элементы,array1включая, но не в других массивах параметров (array2 или array3 и т.д. из ключей и значений. |
Версия PHP: | 5+ |