(PHP 5 >= 5.1.0, PHP 7)
array_intersect_ukey — Вычисляет схождение массивов, используя callback-функцию для сравнения ключей
$array1
, array $array2
[, array $...
], callable $key_compare_func
) : array
array_intersect_ukey() возвращает массив,
содержащий значения array1
,
имеющие ключи, содержащиеся во всех последующих параметрах.
array1
Основной проверяемый массив.
array2
Первый массив, с которым сравниваются ключи.
...
Дополнительные массивы, с которыми осуществляется сравнение ключей.
key_compare_func
Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим, чем второй. Обратите внимание, что до PHP 7.0.0 это целое должно было находиться в диапазоне с -2147483648 до 2147483647.
Возвращает все элементы array1
, чьи ключи
существуют во всех переданных аргументах.
Пример #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' отличаются между
массивами. Совпадение все равно происходит, так как сравниваются только ключи.
Возвращаемые значения берутся из array1
.