downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

array_intersect> <array_intersect_uassoc
[edit] Last updated: Fri, 25 May 2012

view this page in

array_intersect_ukey

(PHP 5 >= 5.1.0)

array_intersect_ukeyВычисляет схождение массивов, используя callback-функцию для сравнения ключей

Описание

array array_intersect_ukey ( array $array1 , array $array2 [, array $... ], callable $key_compare_func )

array_intersect_ukey() возвращает массив, содержащий значения array1, имеющие ключи, содержащиеся во всех последующих параметрах.

Список параметров

array1

Основной проверяемый массив.

array2

Первый массив, с которым сравниваются ключи.

array

Дополнительные массивы, с которыми осуществляется сравнение ключей.

key_compare_func

Функция сравнения должна возвращать целое, которое меньше, равно или больше нуля, если первый аргумент является соответственно меньшим, равным или большим чем второй.

int callback ( mixed $a, mixed $b )

Возвращаемые значения

Возвращает все элементы 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.

Смотрите также

  • array_diff() - Вычислить расхождение массивов
  • array_udiff() - Вычисляет расхождение массивов, используя для сравнения callback-функцию
  • array_diff_assoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса
  • array_diff_uassoc() - Вычисляет расхождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_udiff_assoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений callback-функцию
  • array_udiff_uassoc() - Вычисляет расхождение в массивах с дополнительной проверкой индексов, используя для сравнения значений и индексов callback-функцию
  • array_diff_key() - Вычисляет расхождение массивов, сравнивая ключи
  • array_diff_ukey() - Вычисляет расхождение массивов, используя callback-функцию для сравнения ключей
  • array_intersect() - Вычисляет схождение массивов
  • array_intersect_assoc() - Вычисляет схождение массивов с дополнительной проверкой индекса
  • array_intersect_uassoc() - Вычисляет схождение массивов с дополнительной проверкой индекса, осуществляемой при помощи callback-функции
  • array_intersect_key() - Вычислить пересечение массивов, сравнивая ключи



add a note add a note User Contributed Notes array_intersect_ukey
Fred 25-Aug-2010 02:08
Using PHP Version 5.2.9-2 on Win 32

For those wondering what happens with numeric keys, here's a short example that might save you time :

<?php
$a
=array(1=>'a',2=>'b',3=>'c');
$b=array(2=>'z',3=>'c',4=>'d');
$c=array_intersect_key($a,$b);
print_r($c);
?>

Will output
Array
(
    [2] => b
    [3] => c
)

It works fine, if values are different, the first array's ones are retained.

 
show source | credits | stats | sitemap | contact | advertising | mirror sites