Dizi İşlevleri
PHP Manual

array_udiff_assoc

(PHP 5)

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

Açıklama

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

Veri karşılaştırması için bir geriçağırım işlevi kullanarak diziler arasındaki farkı indislerine de bakarak bulur.

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_assoc($dizi1[0], $dizi2[0], "veri_karş_işlevi"); gibi bir kullanımla sağlayabilirsiniz.

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. Karşılaştırmada array_diff() ve array_udiff() işlevlerinden farklı olarak anahtarlar kullanılır. Verilerin karşılaştırması kullanıcı tarafından tanımlanmış bir işlev kullanılarak yapılır. Verileri karşılaştırmak için dahili bir işlev kullanan array_diff_assoc() işlevinden farklı olarak bu işlev kullanıcı tanımlı bir işlev kullanır.

Örnekler

Örnek 1 - array_udiff_assoc() örneği

<?php
class cr {
    private 
$priv_member;
    function 
cr($val)
    {
        
$this->priv_member $val;
    }

    static function 
comp_func_cr($a$b)
    {
        if (
$a->priv_member === $b->priv_member) return 0;
        return (
$a->priv_member $b->priv_member)? 1:-1;
    }
}

$a = array("0.1" => new cr(9), "0.5" => new cr(12), => new cr(23),
                
1=> new cr(4), => new cr(-15),);
$b = array("0.2" => new cr(9), "0.5" => new cr(22), => new cr(3),
                
1=> new cr(4), => new cr(-15),);

$result array_udiff_assoc($a$b, array("cr""comp_func_cr"));
print_r($result);
?>

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

Array
(
    [0.1] => cr Object
        (
            [priv_member:private] => 9
        )

    [0.5] => cr Object
        (
            [priv_member:private] => 12
        )

    [0] => cr Object
        (
            [priv_member:private] => 23
        )
)

Yukarıdaki örnekte gördüğünüz gibi "1" => new cr(4) çifti her iki dizide de mevcut olduğundan çıktıda gözükmemektedir.

Ayrıca Bakınız


Dizi İşlevleri
PHP Manual