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, 18 Sep 2009

view this page in

array_intersect_ukey

(PHP 5 >= 5.1.0)

array_intersect_ukeyИзчислява сечението на масиви използвайки функция за обратно извикване върху ключовете при сравнението

Описание

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

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

Сравняването се извършва посредством потребителска функция за обратно извикване. Тя трябва да връща цяло число, по-малко, равно или по-голямо от нула, ако първият ключ е съответно по-малък, равен или по-голям от втория.

Параметри

array1

Базовия масив за сравнение на масивите.

array2

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

array

Списък на аргументите на масива с които да се сравнят ключовете.

key_compare_func

Потребителска функция за обратно извикване, за извършване на сравнението.

Връщани стойности

Връща стойностите на array1 , чийто ключове съществуват във всички аргументи.

Примери

Example #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() - Изчислява разлика на масиви посредством функция за обратно извикване за сравнение на данните
  • array_diff_assoc() - Изчислява разлика на масиви с допълнителна проверка на индекса
  • array_diff_uassoc() - Изчислява разлика на масиви с допълнителна проверка на индекса извършвана от потребителска функция за обратно извикване
  • array_udiff_assoc() - Изчислява разлика на масиви с допълнителна проверка на индекса, сравнявайки данните посредством функция за обратно извикване
  • array_udiff_uassoc() - Изчислява разлика на масиви с допълнителна проверка на индекса, сравнявайки данните и индексите посредством функция за обратно извикване
  • array_diff_key() - Изчислява разлика на масиви използювайки ключовете за сравнение
  • array_diff_ukey() - Изчислява разлика на масиви използювайки потребителска функция за обратно извикване за сравнение на ключовете
  • array_intersect() - Изчислява сечението на масиви
  • array_intersect_assoc() - Изчислява сечението на масиви с проверка на индекса
  • array_intersect_uassoc() - Изчислява сечението на масиви с проверка на индекса, сравнявайки индексите посредством функция за обратно извикване
  • 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