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

search for in the

array_intersect> <array_intersect_uassoc
[edit] Last updated: Fri, 07 Jun 2013

view this page in

array_intersect_ukey

(PHP 5 >= 5.1.0)

array_intersect_ukeyAnahtarları karşılaştırmak için bir geriçağırım işlevi kullanarak dizilerin kesişimini hesaplar

Açıklama

array array_intersect_ukey ( array $dizi1 , array $dizi2 [, array $... ], callback $anh_karş_işlevi )

array_intersect_ukey() işlevi tüm değiştirgelerinde mevcut olan ve anahtarları eşleşen tüm dizi1 değerlerini içeren bir dizi döndürür.

Karşılaştırma için kullanıcı tarafından sağlanan bir geriçağırım işlevi kullanılır. İşlev, ilk değiştirgenin ikinciden büyük, küçük veya ikinciye eşit olması durumlarında sırayla sıfırdan büyük, küçük bir değer veya sıfır döndürmelidir.

Değiştirgeler

dizi1

Diğer dizilerin karşılaştırılacağı ilk dizi.

dizi2

İlk dizi ile karşılaştırılacak dizi.

...

İlk dizi ile karşılaştırılacak diğer dizilerin değişkenlerinin listesi.

anh_karş_işlevi

Kullanıcı tarafından sağlanmış, karşılaştırma için kullanılacak işlevin ismi.

Dönen Değerler

Anahtarları tüm değiştirgelerde mevcut dizi1 değerlerini içeren bir dizi döndürür.

Örnekler

Örnek 1 - array_intersect_ukey() örneği

<?php
function anh_kars_islevi($a1$a2)
{
    if (
$a1 == $a2)
        return 
0;
    else if (
$a1 $a2)
        return 
1;
    else
        return -
1;
}

$dizi1 = array('blue'  => 1'red'  => 2'green'  => 3'purple' => 4);
$dizi2 = array('green' => 5'blue' => 6'yellow' => 7'cyan'   => 8);

var_dump(array_intersect_ukey($dizi1$dizi2'anh_kars_islevi'));
?>

Yukarıdaki örneğin çıktısı:

array(2) {
  ["blue"]=>
  int(1)
  ["green"]=>
  int(3)
}

Örnekte gördüğünüz gibi her iki dizide de sadece 'blue' ve 'green' anahtarları ortak olduğundan dönen dizi sadece bu elemanları içermektedir. Ayrıca, dizilerde 'blue' ve 'green' anahtarlı elemanların değerlerinin farklı oluşuna da dikkat ediniz. Sadece anahtarlara bakıldığından bir eşleşme oluşmakta ve sadece dizi1 dizisindeki değerler döndürülmektedir.

Ayrıca Bakınız

  • array_diff() - Dizilerin farkını hesaplar
  • array_udiff() - Veri karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı bulur
  • array_diff_assoc() - Dizilerin farkını hesaplarken ek olarak indisleri de karşılaştırır
  • array_diff_uassoc() - Dizilerin farkını hesaplarken ek olarak bir geriçağırım işlevi üzerinden indisleri de karşılaştırır
  • array_udiff_assoc() - Veri karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı indislerine de bakarak bulur
  • array_udiff_uassoc() - Veri ve indis karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı indislerine de bakarak bulur
  • array_diff_key() - Dizilerin farkını hesaplarken indisleri karşılaştırır
  • array_diff_ukey() - Karşılaştırma için bir geriçağırım işlevi kullanarak dizilerin farkını hesaplar
  • array_intersect() - Dizilerin kesişimini hesaplar
  • array_intersect_assoc() - Dizilerin kesişimini hesaplarken ek olarak indisleri de karşılaştırır
  • array_intersect_uassoc() - Dizilerin kesişimini hesaplarken ek olarak bir geriçağırım işlevi üzerinden indisleri de karşılaştırır
  • array_intersect_key() - Karşılaştırma için anahtarları kullanarak dizilerin kesişimini hesaplar



add a note add a note User Contributed Notes array_intersect_ukey - [1 notes]
up
-1
Fred
2 years ago
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 | sitemap | contact | advertising | mirror sites