PHP Australia Conference 2015

array_uintersect

(PHP 5)

array_uintersectVeriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplar

Açıklama

array array_uintersect ( array $dizi1 , array $dizi2 [, array $ ... ], callback $işlev )

Veriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplar.

Değiştirgeler

dizi1

İlk dizi.

dizi2

İkinci dizi.

işlev

Karşılaştırma için geriçağırım işlevi.

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.

Dönen Değerler

Tüm değiştirgeleri ifade etmek üzere dizi1'in tüm değerlerini içeren bir dizi ile döner.

Örnekler

Örnek 1 - array_uintersect() örneği

<?php
$dizi1 
= array("a" => "mor""b" => "sarı""c" => "mavi""kırmızı");
$dizi2 = array("a" => "MOR""B" => "sarı""yeşil""kırmızı");

print_r(array_uintersect($dizi1$dizi2"strcasecmp"));
?>

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

Array
(
    [a] => mor
    [b] => sarı
    [0] => kırmızı
)

Ayrıca Bakınız

  • array_intersect() - Dizilerin kesişimini hesaplar
  • array_intersect_assoc() - Dizilerin kesişimini hesaplarken ek olarak indisleri de karşılaştırır
  • array_uintersect_assoc() - Veriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar
  • array_uintersect_uassoc() - Veriyi ve indisleri bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplarken ek olarak indislere de bakar

add a note add a note

User Contributed Notes 1 note

up
0
Nate at RuggFamily dot com
7 years ago
I want to stress that in the user function, you do need to return either a 1 or a -1 properly; you cannot simply return 0 if the results are equal and 1 if they are not. 

The following code is incorrect:

<?php
function myfunction($v1,$v2)
{
if (
$v1===$v2)
    {
    return
0;
    }
return
1;
}

$a1=array(1, 2, 4);
$a2=array(1, 3, 4);
print_r(array_uintersect($a1,$a2,"myfunction"));
?>

This code is correct:

<?php
function myfunction($v1,$v2)
{
if (
$v1===$v2)
    {
    return
0;
    }
if (
$v1 > $v2) return 1;
return -
1;
}
$a1=array(1, 2, 4);
$a2=array(1, 3, 4);
print_r(array_uintersect($a1,$a2,"myfunction"));
?>
To Top