array_udiff

(PHP 5, PHP 7)

array_udiffVeri karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı bulur

Açıklama

array_udiff ( array $dizi1 , array $dizi2 [, array $ ... ], callback $veri_karş_işlevi ) : array

Veri karşılaştırması için dahili bir işlev kullanan array_diff() işlevinden farklı olarak, veri karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı bulur.

Değiştirgeler

dizi1

İlk dizi.

dizi2

İkinci dizi.

veri_karş_işlevi

Veri karşılaştırması için geriçağırım işlevi.

Kullanıcı tarafından sağlanır. Dizi değerlerinin aktarılacağı iki değiştirge kabul etmelidir. Birinci değiştirgenin ikinciden büyük, küçük veya ona eşit olduğu durumlarda sırayla sıfırdan büyük, sıfırdan küçük bir değer veya sıfır döndürmelidir.

Dönen Değerler

Diğer değiştirgelerin hiçbirinde mevcut olmayan tüm dizi1 değerlerini içeren bir dizi ile döner.

Örnekler

Örnek 1 - array_udiff() örneği

<?php
class cr {
    private 
$özel_üye;
    function 
cr($val)
    {
        
$this->özel_üye $val;
    }

    static function 
cr_karş_işlevi($a$b)
    {
        if (
$a->özel_üye === $b->özel_üye) return 0;
        return (
$a->özel_üye $b->özel_üye)? 1:-1;
    }
}
$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23),
               
=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3),
               
=> new cr(4), => new cr(-15),);

$sonuç array_udiff($a$b, array("cr""cr_karş_işlevi"));
print_r($sonuç);
?>

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

Array
(
    [0.5] => cr Object
        (
            [özel_üye:cr:private] => 12
        )

    [0] => cr Object
        (
            [özel_üye:cr:private] => 23
        )

)

Notlar

Bilginize: Bu işlevin bir n boyutlu dizinin tek bir boyutunu ele alacağına dikkat ediniz. Şüphesiz daha fazla sayıda boyutun hesaba katılmasını, örneğin array_udiff($dizi1[0], $dizi2[0], "veri_karş_işlevi"); gibi bir kullanımla sağlayabilirsiniz.

Ayrıca Bakınız

  • array_diff() - Dizilerin farkını hesaplar
  • 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_intersect() - Dizilerin kesişimini hesaplar
  • array_intersect_assoc() - Dizilerin kesişimini hesaplarken ek olarak indisleri de karşılaştırır
  • array_uintersect() - Veriyi bir geriçağırım işleviyle karşılaştırarak dizilerin kesişimini hesaplar
  • 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