English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Функция array_diff_ukey() в PHP сравнивает массивы и возвращает разность двух массивов (сравниваются только имена ключей, используется пользовательская функция сравнения ключей).
array_diff_ukey()Использование пользовательской функции сравнивает только ключи двух (или более) массивов и возвращает массив, который содержит элементы array1, но не содержит в array2 или array3 и т.д.
Эта функция отличается отarray_diff()Функция, потому что array_diff() сравнивает значения, а эта функция сравнивает ключи.
Эта функция отличается отarray_diff_assoc()Функция, потому что array_diff_assoc() использует внутренний алгоритм сравнения индексов, а эта функция использует пользовательскую функцию.
array_diff_ukey( $array1, $array2[, $array3..., callback $key_compare_func]);
Номер | Параметры и описание |
---|---|
1 | array1(Обязательный) Первый массив - это массив, который будет сравниваться с другими массивами. |
2 | array2(Обязательный) Это массив, который нужно сравнить с первым массивом |
3 | array3(Опционально) Это массив, который нужно сравнить с первым массивом |
4 | key_compare_func(Обязательный) При сравнении функции, при которой первый параметр меньше, равен или больше второго параметра, сравнительная функция должна возвращать целое число, меньшее, равное или большее 0. |
Эта функция возвращает массив, который содержит все элементы из array1, которые отсутствуют во всех других массивах.
Эта функция была добавлена в PHP версии 5.1.0.
Пример использования array_diff_ukey() и key_compare_func()
<?php function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b) ? 1 : -1; } $input1 = array(0 => "banana", 1 => "orange", 2 => "grapes"); $input2 = array(3 => "apple", 1 => "apricot", 5 => "mango"); print_r(array_diff_ukey($input1,$input2,"key_compare_func")); ?>Проверим‹/›
Результат вывода:
Массив ( [0] => banana [2] => grapes )
Пример array_intersect_ukey()
<?php function key_compare_func($a, $b) { if ($a === $b) { return 0; } return ($a > $b) ? 1 : -1; } $input1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4); $input2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8); print_r(array_diff_ukey($input1,$input2,"key_compare_func")); ?>Проверим‹/›
Результат вывода:
Массив ( [красный] => 2 [紫色] => 4 )