(PHP 5 >= 5.1.0, PHP 7, PHP 8)
array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей
array_intersect_ukey() возвращает массив,
содержащий значения array
,
имеющие ключи, содержащиеся во всех последующих параметрах.
array
Основной проверяемый массив.
arrays
Массивы, с которыми сравниваются ключи.
key_compare_func
Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй.
Возвращение нецелых значений из функции сравнения,
таких как число с плавающей точкой (float), приведёт к внутреннему
приведению возвращаемого значения callback-функции к целому числу (int).
Таким образом, значения 0.99
и 0.1
будут
приведены к целочисленному значению 0
,
что позволит сравнить эти значения как равные.
Возвращает все элементы array
, чьи ключи
существуют во всех переданных аргументах.
Пример #1 Пример использования array_intersect_ukey()
<?php
function key_compare_func($key1, $key2)
{
if ($key1 == $key2)
return 0;
else if ($key1 > $key2)
return 1;
else
return -1;
}
$array1 = array('blue' => 1, 'red' => 2, 'green' => 3, 'purple' => 4);
$array2 = array('green' => 5, 'blue' => 6, 'yellow' => 7, 'cyan' => 8);
var_dump(array_intersect_ukey($array1, $array2, 'key_compare_func'));
?>
Результат выполнения данного примера:
array(2) { ["blue"]=> int(1) ["green"]=> int(3) }
В нашем примере только ключи 'blue'
и 'green'
содержатся в обоих массивах и поэтому
возвращаются. Также обратите внимание, что значения, соответствующие ключам
'blue'
и 'green'
отличаются между
массивами. Совпадение всё равно происходит, так как сравниваются только ключи.
Возвращаемые значения берутся из array
.